python的matplotlib库绘图的实现方法
感兴趣的小伙伴,下面一起跟随php教程的雯雯来看看吧!
一、前言
pyt
这篇文章主要为大家详细介绍了python的matplotlib库绘图的实现方法,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的雯雯来看看吧!
一、前言
python的matplotlib库很强大可以绘制各种类型的图像。首先要装一些基础的库,如numpy,matplotlib或是pandas。
二、基础命令
首先介绍绘图时常用的基础命令:
1.plt.plot(x,y)即为绘图命令。①基础画图:
代码如下:
1 2 | <code> plt.plot(x, y)</code> |
教你学会通过python的matplotlib库绘图
②设置颜色:
color属性如果没有特别要求的话可以不手动设置颜色,如果要在一张图上画不同的线时,会自动分配颜色。也可以使用ax.plot效果相同。
代码如下:
1 2 | <code> plt.plot(x, y, color = 'red' )</code> |
教你学会通过python的matplotlib库绘图
③设置线型:
lineStyle属性可以选择'-', ‘–', ‘-.', ‘:', ‘None', ' ', ‘', ‘solid', ‘dashed', ‘dashdot', 'dotted'这些类型的。
代码如下:
1 2 | <code> plt.plot(x, y, lineStyle = 'dashdot' )</code> |
教你学会通过python的matplotlib库绘图
④设置标注类型:
marker属性有不同的marker可以选择,比如'o','*',‘x'。
代码如下:
1 2 | <code> plt.plot(x, y ,marker= 'x' )</code> |
教你学会通过python的matplotlib库绘图
⑤设置图例:
label属性。
代码如下:
1 2 3 4 | <code> plt.plot(x, y ,marker= 'o' ,label= '语文成绩' ) plt.plot(x, y ,marker= '*' ,label= '数学成绩' ) plt.plot(x, y ,marker= 'x' ,label= '英语成绩' )</code> |
教你学会通过python的matplotlib库绘图
只是这样图例是不会显示的,还需要加上loc是位置设置,具体见后面讲解。
代码如下:
1 2 | <code> plt.legend(loc= 'upper left' )</code> |
教你学会通过python的matplotlib库绘图
三、正常显示中文:
①windows系统:
代码如下:
1 2 3 | <code> plt.rcParams[ 'font.family' ] = [ 'sans-serif' ] plt.rcParams[ 'font.sans-serif' ] = [ 'SimHei' ]</code> |
教你学会通过python的matplotlib库绘图
mac系统:这里是这样设置的,也可以设置为其他中文字体。
代码如下:
1 2 | <code> plt.rcParams[ "font.family" ] = 'Arial Unicode MS' </code> |
教你学会通过python的matplotlib库绘图
②正常显示符号:
代码如下:
1 2 | <code> plt.rcParams[ 'axes.unicode_minus' ] = False</code> |
教你学会通过python的matplotlib库绘图
四、设置图样或子图
①如果只画一张图的话可以,figsize设置的是x轴和y轴方向图片大小的比例。这里要设置好否则可能会出现图片显示不完全的情况,如果通过savefig命令保存的话,也是按照这个比例来保存的图片。
代码如下:
1 2 | <code> f = plt.figure(figsize=(8,6))</code> |
教你学会通过python的matplotlib库绘图
或是,虽然是通过subplots命令,可是不指定nrows和ncols默认只有一个子图。
代码如下:
1 2 | <code> f, ax = plt.subplots(figsize=(8,6))</code> |
教你学会通过python的matplotlib库绘图
ax表示的是当前坐标轴。
代码如下:
1 2 | <code> ax = plt.gca()</code> |
教你学会通过python的matplotlib库绘图
如果有多个子图的话:nrows为行,ncols为列,figsize为图片的尺寸。
代码如下:
1 2 | <code> f, ax = plt.subplots(nrows=2,ncols=1,figsize=(8,6),facecolor= 'white' )</code> |
教你学会通过python的matplotlib库绘图
或是
代码如下:
1 2 3 4 5 6 | <code> 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)</code> |
教你学会通过python的matplotlib库绘图
或是
代码如下:
1 2 3 4 5 | <code> ax1 = plt.subplot(2,1,1) ax2 = plt.subplot(2,1,2) ax1.plot(x,y) ax2.plot(x,z)</code> |
教你学会通过python的matplotlib库绘图
其他属性:第一个属性标记的是窗口的名称,dpi设置的分辨率。
代码如下:
1 2 | <code> f = plt.figure( '成绩窗口' ,figsize=(8,6),facecolor= 'white' ,dpi=100)</code> |
教你学会通过python的matplotlib库绘图
②设置图片背景色:
代码如下:
1 2 | <code> f = plt.figure(figsize=(8,6),facecolor= 'blue' )</code> |
教你学会通过python的matplotlib库绘图
如果要设置图片前景色,要用
代码如下:
1 2 | <code> ax.set(facecolor= 'white' )</code> |
教你学会通过python的matplotlib库绘图
五、设置x轴或y轴相关属性:
①设置x轴的刻度:需要指定标注的位置,标注的具体值,可以通过fontsize指定大小。
代码如下:
1 2 3 4 | <code> x = [0,2,4,6,8] x_label = [ '第一学期' , '第二学期' , '第三学期' , '第四学期' , '第五学期' ] plt.xticks(x, x_label,fontsize=13)</code> |
教你学会通过python的matplotlib库绘图
这里的xticks支持latex,
代码如下:
1 2 | <code> x_label = [r '$e^x$' ,r '$x_1^2$' ,r '$\lambda$' ,r '$\frac{1}{2}$' ,r '$\pi$' ]</code> |
教你学会通过python的matplotlib库绘图
有时候可能标注的值很多,我们想把x轴的刻度竖着显示:只需要在x_label中要换行的地方加上'\n‘换行符即可。
代码如下:
1 2 3 4 5 | <code> x = [0,2,4,6,8] x_label = [ '第\n一\n学\n期' , '第二\n学期' , '第\n三\n学\n期' , '第四\n学期' , '第五\n学期' ] plt.xticks(x, x_label,fontsize=13)#这有一张图 </code> |
教你学会通过python的matplotlib库绘图
②设置x轴的标签:这两条命令是一样的作用。
代码如下:
1 2 3 | <code> plt.xlabel(u "学期" ) ax.set_xlabel(u "学期" )#设置x轴的标签值</code> |
教你学会通过python的matplotlib库绘图
xlabel同样支持latex
代码如下:
1 2 | <code> plt.xlabel(u "$x^2$" )</code> |
教你学会通过python的matplotlib库绘图
③设置x轴的范围:这两条命令也是一样的作用。一般不需要人为指定范围,程序会根据输入的最大值和最小值自动确定一个范围。
代码如下:
1 2 3 | <code> plt.xlim(0,100) ax.set_xlim(0,100)</code> |
教你学会通过python的matplotlib库绘图
设置y轴的相关属性和x轴的相关属性方法是一样的,只需要把x替换成y即可。
六、设置标题:
fontsize为大小,fontweight指定加粗。下面两条命令作用相同。
代码如下:
1 2 3 | <code> plt.title( '小明第一至第四学期成绩变化折线图' ,fontsize=18,fontweight= 'bold' ) ax.set_title( '小明第一至第四学期成绩变化折线图' ,fontsize=18,fontweight= 'bold' )</code> |
教你学会通过python的matplotlib库绘图
这里程序会自动将标题放在一个合适的位置,当然也难免出现title不是我们想要的位置的情况,这是可以通过指定x或是y属性,来设置title的位置。正常范围是[0,1]可以设置负零点几或是一点几,需要多尝试,如果设置超出图片范围会看不到title的。比如这里我设置y=-0.1,可以看到title到下面去了。
代码如下:
1 2 | <code> plt.title( '小明第一至第四学期成绩变化折线图' ,fontsize=18,fontweight= 'bold' ,y=-0.1)</code> |
教你学会通过python的matplotlib库绘图
七、设置图例:
法一:在画图的时候做好标注。
代码如下:
1 2 3 4 5 6 | <code> 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' ) </code> |
教你学会通过python的matplotlib库绘图
法二:不写在plot中,统一写在legend中。可以指定对应曲线,这里的曲线定义后一定要加',',否则会报错。
代码如下:
1 2 3 4 5 6 | <code> 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' ) </code> |
教你学会通过python的matplotlib库绘图
或是不指定对应曲线,
代码如下:
1 2 | <code> plt.legend(( '语文成绩' , '数学成绩' , '英语成绩' ),loc= 'upper left' )</code> |
教你学会通过python的matplotlib库绘图
不指定对应曲线的方式不推荐,有时候并不想给每个曲线都加图例,不加图例的曲线可以不写label属性。而该方式会按plot的顺序,加图例,不会跳过不想加图例的曲线,除非是最后的曲线,不写就不会加。legend的命令只能通过plt设置,如果有多个子图的话,
代码如下:
1 2 | <code> ax = plt.subplot(2,1,1)</code> |
教你学会通过python的matplotlib库绘图
这样对plt操作就可以对子图操作。
八、进行标注:
标注的话需要写循环,一个个标注,不能这样写plt.text(x,y,"%s"%str(y)),不会一次标注一堆。fontsize是设置标注的字体。用ax是一样的。
代码如下:
1 2 3 4 | <code> 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)</code> |
教你学会通过python的matplotlib库绘图
经常出现legend把图片内容给挡住了的情况,这里也可以指定legend的位置。
可以通过bbox_to_anchor属性来调整legend的位置。
代码如下:
1 2 | <code> plt.legend(bbox_to_anchor=(1.05, 1), loc=2)</code> |
教你学会通过python的matplotlib库绘图
图例还有许多其他的属性,
九、保存图片:
代码如下:
1 2 | <code> plt.savefig( '小明成绩变化图.png' )</code> |
教你学会通过python的matplotlib库绘图
十、显示图片:
代码如下:
1 2 | <code> plt.show()</code> |
教你学会通过python的matplotlib库绘图
十一、删除边框:
这里有四个方向,可以选择删除哪一个方向的边框。
代码如下:
1 2 3 4 5 6 | <code> ax.spines[ 'right' ].set_visible(False) ax.spines[ 'top' ].set_visible(False) ax.spines[ 'bottom' ].set_visible(False) ax.spines[ 'left' ].set_visible(False) </code> |
教你学会通过python的matplotlib库绘图
十二、显示/不显示网格:
代码如下:
1 2 3 | <code> ax.grid(True) ax.grid(False)</code> |
教你学会通过python的matplotlib库绘图
到此这篇关于教你学会通过python的matplotlib库绘图的文章就介绍到这了,更多相关python的matplotlib库内容请搜索php教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持php教程!
注:关于python的matplotlib库绘图的实现方法的内容就先介绍到这里,更多相关文章的可以留意