如何快速掌握matplotlib库的绘图操作,知识有哪些
Admin 2022-07-26 群英技术资讯 350 次浏览
python的matplotlib库很强大可以绘制各种类型的图像。
首先要装一些基础的库,如numpy,matplotlib或是pandas。
首先介绍绘图时常用的基础命令:
1.plt.plot(x,y)即为绘图命令。
①基础画图:
plt.plot(x, y)
②设置颜色:
color属性
如果没有特别要求的话可以不手动设置颜色,如果要在一张图上画不同的线时,会自动分配颜色。也可以使用ax.plot效果相同。
plt.plot(x, y, color = 'red')
③设置线型:
lineStyle属性
可以选择'-', ‘�C', ‘-.', ‘:', ‘None', ' ', ‘', ‘solid', ‘dashed', ‘dashdot', 'dotted'这些类型的。
plt.plot(x, y, lineStyle = 'dashdot')
④设置标注类型:
marker属性
有不同的marker可以选择,比如'o','*',‘x'。
plt.plot(x, y ,marker='x')
⑤设置图例:
label属性。
plt.plot(x, y ,marker='o',label='语文成绩') plt.plot(x, y ,marker='*',label='数学成绩') plt.plot(x, y ,marker='x',label='英语成绩')
只是这样图例是不会显示的,还需要加上loc是位置设置,具体见后面讲解。
plt.legend(loc='upper left')
①windows系统:
plt.rcParams['font.family'] = ['sans-serif'] plt.rcParams['font.sans-serif'] = ['SimHei']
mac系统:
这里是这样设置的,也可以设置为其他中文字体。
plt.rcParams["font.family"] = 'Arial Unicode MS'
②正常显示符号:
plt.rcParams['axes.unicode_minus'] = False
①如果只画一张图的话可以,figsize设置的是x轴和y轴方向图片大小的比例。这里要设置好否则可能会出现图片显示不完全的情况,如果通过savefig命令保存的话,也是按照这个比例来保存的图片。
f = plt.figure(figsize=(8,6))
或是,虽然是通过subplots命令,可是不指定nrows和ncols默认只有一个子图。
f, ax = plt.subplots(figsize=(8,6))
ax表示的是当前坐标轴。
ax = plt.gca()
如果有多个子图的话:
nrows为行,ncols为列,figsize为图片的尺寸。
f, ax = plt.subplots(nrows=2,ncols=1,figsize=(8,6),facecolor='white')
或是
fig = plt.figure() ax1 = fig.add_subplot(2,1,1) ax2 = fig.add_subplot(2,1,2) ax1.plot(x,y) ax2.plot(x,z)
或是
ax1 = plt.subplot(2,1,1) ax2 = plt.subplot(2,1,2) ax1.plot(x,y) ax2.plot(x,z)
其他属性:第一个属性标记的是窗口的名称,dpi设置的分辨率。
f = plt.figure('成绩窗口',figsize=(8,6),facecolor='white',dpi=100)
②设置图片背景色:
f = plt.figure(figsize=(8,6),facecolor='blue')
如果要设置图片前景色,要用
ax.set(facecolor='white')
①设置x轴的刻度:
需要指定标注的位置,标注的具体值,可以通过fontsize指定大小。
x = [0,2,4,6,8] x_label = ['第一学期','第二学期','第三学期','第四学期','第五学期'] plt.xticks(x, x_label,fontsize=13)
这里的xticks支持latex,
x_label = [r'$e^x$',r'$x_1^2$',r'$\lambda$',r'$\frac{1}{2}$',r'$\pi$']
有时候可能标注的值很多,我们想把x轴的刻度竖着显示:
只需要在x_label中要换行的地方加上'\n‘换行符即可。
x = [0,2,4,6,8] x_label = ['第\n一\n学\n期','第二\n学期','第\n三\n学\n期','第四\n学期','第五\n学期'] plt.xticks(x, x_label,fontsize=13)#这有一张图
②设置x轴的标签:
这两条命令是一样的作用。
plt.xlabel(u"学期") ax.set_xlabel(u"学期")#设置x轴的标签值
xlabel同样支持latex
plt.xlabel(u"$x^2$")
③设置x轴的范围:
这两条命令也是一样的作用。
一般不需要人为指定范围,程序会根据输入的最大值和最小值自动确定一个范围。
plt.xlim(0,100) ax.set_xlim(0,100)
设置y轴的相关属性和x轴的相关属性方法是一样的,只需要把x替换成y即可。
fontsize为大小,fontweight指定加粗。下面两条命令作用相同。
plt.title('小明第一至第四学期成绩变化折线图',fontsize=18,fontweight='bold') ax.set_title('小明第一至第四学期成绩变化折线图',fontsize=18,fontweight='bold')
这里程序会自动将标题放在一个合适的位置,当然也难免出现title不是我们想要的位置的情况,这是可以通过指定x或是y属性,来设置title的位置。正常范围是[0,1]可以设置负零点几或是一点几,需要多尝试,如果设置超出图片范围会看不到title的。
比如这里我设置y=-0.1,可以看到title到下面去了。
plt.title('小明第一至第四学期成绩变化折线图',fontsize=18,fontweight='bold',y=-0.1)
法一:
在画图的时候做好标注。
plt.plot(x, y[0,:],marker='o',label='语文成绩') plt.plot(x, y[1,:],marker='*',label='数学成绩') plt.plot(x, y[2,:],marker='x',label='英语成绩') plt.legend(loc='upper left')
法二:
不写在plot中,统一写在legend中。
可以指定对应曲线,这里的曲线定义后一定要加',',否则会报错。
a,=plt.plot(x, y[0,:],marker='o') b,=plt.plot(x, y[1,:],marker='*') c,=plt.plot(x, y[2,:],marker='x') plt.legend((a,b,c),('语文成绩','数学成绩','英语成绩'),loc='upper left')
或是不指定对应曲线,
plt.legend(('语文成绩','数学成绩','英语成绩'),loc='upper left')
不指定对应曲线的方式不推荐,有时候并不想给每个曲线都加图例,不加图例的曲线可以不写label属性。而该方式会按plot的顺序,加图例,不会跳过不想加图例的曲线,除非是最后的曲线,不写就不会加。
legend的命令只能通过plt设置,如果有多个子图的话,
ax = plt.subplot(2,1,1)
这样对plt操作就可以对子图操作。
标注的话需要写循环,一个个标注,不能这样写plt.text(x,y,"%s"%str(y)),不会一次标注一堆。
fontsize是设置标注的字体。用ax是一样的。
for i in range(len(x)): plt.text(x[i],y[i],"%s"%str(y[i]), fontsize=12) #ax.text(x[i],y[i],"%s"%str(y[i]), fontsize=12)
经常出现legend把图片内容给挡住了的情况,这里也可以指定legend的位置。
可以通过bbox_to_anchor属性来调整legend的位置。
plt.legend(bbox_to_anchor=(1.05, 1), loc=2)
图例还有许多其他的属性,
plt.savefig('小明成绩变化图.png')
plt.show()
这里有四个方向,可以选择删除哪一个方向的边框。
ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) ax.spines['bottom'].set_visible(False) ax.spines['left'].set_visible(False)
ax.grid(True) ax.grid(False)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文详细讲解了Python中requests库的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
内容介绍题目描述解题思路/算法分析/问题及解决实验代码运行结果题目描述本次实验为连接数据库的实验,并对数据库进行一些简单的操作,要实现的基本功能如下所示,要能连接并展现数据库里的数据,能够实现插入功能
我们在学习Python语言时会遇到各种各样的字符串方法处理,下面这篇文章主要给大家介绍了关于Python基础篇之字符串的最全常用操作方法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
点对点连接可以处理很多通信需求,不过随着直接连接数的增加,在多对通信方之间传递相同的消息会变得越来越困难。单独地向各个接收方发送消息会耗费额外的处理时间和带宽,这对于诸如完成流视频或音频操作的应用来说,代码会出现显著的性能问题。
Python有广泛丰富的第三方库,在没有特殊定制下,避免了重复造轮子。本文将利用radar库实现生成随机的日期或时间,文中的示例代码讲解详细,感兴趣的可以了解一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008