matplotlib基础

绘图与可视化

如果想在jupyter notebook中使用

%matplotlib notebook

导入matplotlib包

import matplotlib.pyplot as plt

直接生成一个简单图形

data = np.arange(10)

plt.plot(data)

matplotlib所绘制的图位于Figure对象中,使用plt.figure就生成一个图片

fig = plt.figure()

不能在空白的图片中进行绘图,,需要创建子图

ax1 = fig.add_subplot(2,2,1) //2行2列的第一个位置

notebook中,单个单元格运行后,图表会重置,所以对于复杂的图表,所有绘图命令放在一个单元格中

如果定义多个子图,绘图之后会默认在最后一个子图进行绘制

plt.plot([1.4,1.2])

fig.add_subplot返回对象是Axes Subplot对象,使用这些对象可以直接在空白子图进行绘图。

matplotlib包含了一个便捷方法plt.subplots,它创建一个新的图片,然后返回包含了已生成子图对象的Numpy数组

fig, axes = plt.subplots(2,3) //两行三列个子图

fig, axes = plt.subplots(2,3,sharex=True,sharey=True) //共享x轴y轴

调整间距的函数

plt.subplots_adjust(left=None, bottom=None,right=None,top=None,wspace=None,hspace=None)

颜色标记线类型

plot函数接收一些带有x,y的数组以及参数决定颜色和线形

ax.plot(x,y,'g--')

ax.plot(x,y,linestyle='--', color='g')

还可以带标记,但是线类型,标记类型必须在颜色后面

plt.plot(randn(30).cumsum(), 'ko--')

plot(randn(30).cumsum(),color='k',linestyle='dashed',marker='o')

刻度标签和图例

pyplot接口包含了xlim, xticks和xticklabels等方法,分别控制了绘图范围、刻度位置和刻度标签。有两种调用方式:

没有参数情况下,返回x轴的绘图范围

plt.xlim()

有参数情况下,将x轴范围设置成参数范围

plt.xlim([0,10])

设置x轴刻度和刻度标签

ticks = ax.set_xticks([0,250,500,750,1000])

lables=ax.set_xticklabels(['one','two','three','four','five'],rotation=30 ,fontsize='small') //retation=30表示旋转30度

可以给x轴一个名称

ax.set_xlabel('stages')

y轴同理

可以给子图一个标题

ax.set_title('my title matplotlib plot')

添加图例,图例是区分绘图元素的重要内容

ax.plot(np.random.randn(1000).cumsum(), 'k', label='one')

ax.plot(np.random.randn(1000).cumsum(), 'k--', label='two')

ax.plot(np.random.randn(1000).cumsum(), 'k.', label='three')

生成图例

ax.legend(loc='best') // loc参数指定图例位置,best自动找最适合位置

将图片保存到文件

可以使用plt.savefig将活动图片保存到文件。

plt.savefig('figpath.svg') //文件类型可以更改

文件格式可以更改,dpi控制分辨率,bbox_inches可以修剪实际图形的空白,tight表示最小空白

plt.savefig('figpath.png',dpi=400,bbox_inches='tight')

matplotlib设置

可以更改默认设置plt.rc('figure',figsize=(10,10))

rc的第一个参数是想要自定义的组件,比如‘figure','axes','xtick','grid','legend'

posted @   小五的室友  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示