当前位置: 首页 > 后端技术 > Python

Data-Visualization-02matplotlib基本操作

时间:2023-03-26 01:01:37 Python

Data-Visualization-02matplotlib基本操作一张图片的最大价值在于它迫使我们去注意我们从未想过会看到的东西。--JohnTurkey资料系列:目录|配置|代码仓库一、环境配置关于anaconda和python环境的配置以及jupyternotebook的使用可以参考上一篇文章。要配置matplotlib库,只需直接运行condainstall-ndata_env_37matplotlib。打开jupyter-notebook导入库importnumpyasnpimportmatplotlib.pyplotasplt2。中文显示问题首先要解决中文显示问题;首先查看matplotlib中包含的所有字体,找到中文字体(比如'黑体TC');然后设置字体,解决中文显示问题。如果字体库中没有中文字体,可以搜索相应的教程(如参考文献1)。importmatplotlib.font_manager#显示所有字体a=sorted([f.nameforfinmatplotlib.font_manager.fontManager.ttflist])foriina:print(i)#设置以便可以正常显示中文plt.rcParams['font.sans-serif']=['HeitiTC']#用于正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用于正常显示负号3.简单示例下面的示例包括标题、坐标轴、注释、图例等,以及如何保存图片。#绘制的图形x=np.arange(1,11)y=2*x+5#显示并设置网格#plt.grid()plt.grid(color='k',linewidth='1',linestyle='-.')#title,axistextplt.title("title")plt.xlabel("xaxis")plt.ylabel("yaxis")#axisrange#plt.axis([0,8,0,30])x从0到8,y从0到30plt.xlim(xmin=0,xmax=8)plt.ylim(ymin=0,ymax=30)#坐标轴区间#plt.locator_params(nbins=10)plt.locator_params('x',nbins=5)plt.locator_params('y',nbins=6)#绘制图形并设置图形样式plt.plot(x,y,":b")plt.plot(x,np.sin(x)+4,"--c")plt.plot(x,x*x/3+2,颜色=(0.1,0.2,0.3),marker='>')plt.plot(np.cos(x)+4,color='#FF00FF',marker='s')#文本和公式plt.text(5,20,"function:y=2x+5")plt.text(7,8,r"$y=\sin(x)+4$")#评论plt.annotate("评论",xy=(3,11),xytext=(2,14),arrowprops={'facecolor':'r','shrink':0.05,'headwidth':15})#设置图例plt.legend(['function1','function2','function3','function4'])#保存图片plt.savefig('02-01.png')plt.savefig('02-01.svg')#显示pictureplt.show()结果如下,4.一个更复杂的例子下面的例子包含子图,填充颜色,双坐标等#计算函数x=np.arange(0,3*np.pi,0.1)#总标题plt.suptitle('complexgraph')#调整子图参数#top,bottom,right,top代表整幅图像到frame的距离#wspace,hspace表示子图之间的间距plt.subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=1,hspace=1)#绘制第一张图plt.subplot(2,2,1)plt.plot(x,np.sin(x),'r')plt.plot(x,np.cos(x),'b')plt.title('sincos')#绘制第二个图像plt.subplot(2,2,2)plt.plot(x,np.sin(x),'r')plt.twinx()#默认是0到1plt.plot(x,np.log(x+1),'b')plt.title('双坐标')#绘制第三张图plt.subplot(2,2,3)plt.plot(x,np.sin(x),'r')plt.plot(x,np.cos(x),'b')plt.fill(x,np.sin(x),'r')plt.fill(x,np.cos(x),'b')plt.title('sinandcosinefill')#绘制第四张图plt.subplot(2,2,4)plt.plot(x,np.sin(x),'r')plt.plot(x,np.cos(x),'b')plt.fill_between(x,np.sin(x),np.cos(x),where=np.sin(x)>np.cos(x),interpolate=True)plt.title('sinandcosinefillintersectionposition')#savethepictureplt.savefig('02-02.png')#showtheimageplt.show()结果如下5.转换样式下面的例子展示了在两者之间的切换不同样式查看所有样式的方法plt.style.available,可以看到如下样式,然后修改样式设置,如下plt.rcParams['font.sans-serif']=['HeitiTC']#用于正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用于正常显示负号plt.style.use('bmh')#使用不同的样式#计算函数x=np.arange(0,3*np.pi,0.1)#总标题plt.suptitle('bmhstyle')#######################这里和前面的例子一样##########################显示图片plt.show()几个样式的例子如下,当我使用seabornstyle,Chinese显示会出错,可能需要重新解决6.线型、颜色和标记[线型]字符线型字符线型'-'实线'--'虚线'-。'点划线':'虚线[颜色]字符颜色字符颜色'b'蓝色'g'绿色'r'红色'c'青色'm'洋红色'y'黄色'k'黑色'w'白色[mark]charactermarkcharactermark'.'pointmark','pixelmark'o'roundmark'v'invertedtrianglemark'^'positivetrianglemark'<'lefttrianglemark'>'righttrianglemark'1'向下箭头mark'2'向上箭头标记'3'左箭头标记'4'右箭头标记's'方形标记'p'五边形标记'*'星形标记'h'六角标记1'H'六角标记2'+'加号mark'x'Xmark'D'菱形mark'd'窄菱形mark'|'竖线mark'_'横线标记参考[mac]matplotlib显示中文问题(两种方法)NumPyMatplotlib|新手教程