当前位置: 首页 > 科技观察

Python中常用的可视化工具Matplotlib简单介绍

时间:2023-03-12 03:47:37 科技观察

Matplotlib是一个Python2D绘图库和一些基本的3D图表,可以生成各种格式的图片。Matplotlib可用于Python脚本、Pythonshell、Jupyter笔记本、Web应用程序服务器等。Matplotlib是JohnHunter(1968-2012)的创意,他与许多贡献者一起投入了不可估量的时间和精力来制作一套软件,供全世界成千上万的科学家使用。查看Matplotlib版本>>>importmatplotlib>>>matplotlib.__version__'3.0.3'在Python中调用Matplotlib,通常使用importmatplotlib.pyplot调用Matplotlib集成的快速绘图pyplot模块。Figure(整个图像)在任何绘图之前都需要一个Figure对象,可以理解为需要一个绘图板才能开始绘图。importmatplotlib.pyplotaspltfig=plt.figure()在Matplotlib中,整幅图像都是一个Figure对象。一个Figure对象可以包含一个或多个Axes对象,每个Axes对象都是一个绘图区域,有自己的坐标系。Axes(坐标轴)拥有Figure对象后,绘制前需要坐标轴。如果没有轴,就没有绘图基准,所以需要添加Axes。也可以理解为真正可以用来作画的纸。ax=fig.add_subplot(111)ax.set(xlim=[0,5],ylim=[0,6],title='AnExampleAxes',ylabel='Y-Axis',xlabel='X-Axis')plt.show()上面的代码在一个graph中添加了一个Axes,然后设置了这个Axes的X轴和Y轴的取值范围,以及一些文本信息。效果如下:在Matplotlib下,一个Figure对象可以包含多个子图(Axes),使用subplot()可以快速绘制,调用形式如下:subplot(numRows,numCols,plotNum)整个绘图区图表分为numRows行和numCols列;然后按照从左到右、从上到下的顺序对每个子区域进行编号,左上角的子区域编号为1;plotNum参数指定创建的Axes对象所在的区域;对于上面的fig.add_subplot(111)是添加Axes,参数的解释在画板第一行第一列的第一个位置生成一个Axes对象,准备画图。轴也可以通过fig.add_subplot(2,2,1)生成。前两个参数决定面板的划分。如果numRows、numCols、plotNum这三个数小于10,可以简写为整数,例如subplot(221)和subplot(2,2,1)是一样的。subplot在plotNum指定的区域中创建一个坐标区对象。如果新创建的轴与先前创建的轴重叠,则先前的轴将被删除。MultipleAxesGenerateallAxesatmultiplesubgraphsundermultiplesubgraphs:简单概括就是最上面的canvas,称为figure;它可以绘制在画布上的不同区域,这些区域称为子图;每个subplot区域可以划分如下:axis是x和y坐标轴;tick为各坐标轴的刻度;label是坐标轴上的标签;title是每个子图的标题;data是输入数据绘制的图像;Matplotlib绘图演示代码将此图像分为8个子区域,每个子区域绘制不同的图像。importnumpyasnpimportmatplotlib.pyplotaspltx=[1,2,3,4]y=[3,5,10,25]#创建子图plt.subplot(241)plt.plot(x,y)plt.title("plot")plt.subplot(242)plt.scatter(x,y)plt.title("scatter")plt.subplot(243)plt.pie(y)plt.title("pie")plt.subplot(244)plt.bar(x,y)plt.title("bar")plt.subplot(245)plt.boxplot(y,sym="o")plt.title("box")#sin/cos图像plt.subplot(246)x=np.linspace(0,np.pi)y_sin=np.sin(x)y_cos=np.cos(x)plt.plot(x,y_sin)plt.plot(x,y_cos)#g--set线条样式和颜色plt.subplot(247)plt.plot(x,y_sin,'g--')plt.title("sin")#加载本地图像importmatplotlib.imageasmpimgimg=mpimg.imread('666.jpg')铂。子图(248)plt。imshow(img)有限公司。标题(“酷...”)PLT。展示()