MatplotlibTask2

MatplotlibTask2

浏览次数:
信息来源: 用户投稿
更新日期: 2025-12-10 18:10:54
文章简介

一.概述1.matplotlib的三层api matplotlib的原理或者说基础逻辑是,用Artist对象在画布(canvas)上绘制(Render)图形。更通俗点的理解就是Artist的作用是调

2025阿里云双十一服务器活动

一.概述1.matplotlib的三层api

matplotlib的原理或者说基础逻辑是,用Artist对象在画布(canvas)上绘制(Render)图形。更通俗点的理解就是Artist的作用是调用画笔来绘制出想要的图形,canvas是个承接内容的画布,Render是画笔。

matplotlib.backend_bases.FigureCanvas代表了绘图区,所有的图像都是在绘图区完成的。

matplotlib.backend_bases.Renderer代表了渲染器,可以近似理解为画笔,控制如何在FigureCanvas上画图。

matplotlib.artist.Artist代表了具体的图表组件,即调用了Renderer的接口在Canvas上作图,具体的调用接口来做出我们想要的图,比如图形、文本、线条的设定。

Artist有两种类型:primitives和containers。

primitive是基本要素,它包含一些我们要在绘图区作图用到的标准图形对象,如曲线Line2D,文字text,矩形Rectangle,图像image等。

container是容器,即用来装基本要素的地方,包括图形figure、坐标系Axes和坐标轴Axis。

两者的关系可以通俗的理解为contaniner包含primitives。

可视化中常见的artist类可以参考下图这张表格:Axeshelpermethod??Artist??Containerbar-barcharts??Rectangle??ax.patcheserrorbar-errorbarplots??Line2DandRectangle??ax.linesandax.patchesfill-sharedarea??Polygon??ax.patcheshist-histograms??Rectangle??ax.patchesimshow-imagedata??AxesImage??ax.imagesplot-xyplots??Line2D??ax.linesscatter-scattercharts??PolyCollection??ax.collections

MatplotlibTask2

第二列:表示不同图表背后的artist类,比如折线图方法plot在底层用到的就是Line2D这一artist类。

第三列:是第二列的列表容器,例如所有在子图中创建的Line2D对象都会被自动收集到ax.lines返回的列表中。

primitives的几种类型:曲线-Line2D,矩形-Rectangle,多边形-Polygon,图像-image。

在matplotlib中曲线的绘制,主要是通过类matplotlib.lines.Line2D来完成的。

matplotlib中线-line的含义:它表示的可以是连接所有顶点的实线样式,也可以是每个顶点的标记。此外,这条线也会受到绘画风格的影响,比如,我们可以创建虚线种类的线。

xdata:需要绘制的line中点的在x轴上的取值,若忽略,则默认为range(1,len(ydata)+1)??ydata:需要绘制的line中点的在y轴上的取值??linewidth:线条的宽度??linestyle:线型??color:线条的颜色??marker:点的标记,详细可参考markersAPI??markersize:标记的size

其他详细参数可参考Line2D官方文档

有三种方法可以用设置线的属性。

直接在plot()函数中设置??通过获得线对象,对线对象进行设置??获得线属性,使用setp()函数设置

其实下列例子和matlab绘图比较相似,可以联想理解importnumpyasnpimportpandasaspdimportreimportmatplotlibimportmatplotlib.pyplotaspltfrommatplotlib.linesimportLine2Dfrommatplotlib.patchesimportCircle,Wedgefrommatplotlib.collectionsimportPatchCollection设置线的粗细参数为10plt.show()

importnumpyasnpimportpandasaspdimportreimportmatplotlibimportmatplotlib.pyplotaspltfrommatplotlib.linesimportLine2Dfrommatplotlib.patchesimportCircle,Wedgefrommatplotlib.collectionsimportPatchCollection?这里等号坐标的line,是一个列表解包的操作,目的是获取plt.plot返回列表中的Line2D对象line.set_antialiased(False);#关闭抗锯齿功能plt.show()

标签:
Hostwinds(hostwinds怎么样)
« 上一篇
返回列表
下一篇 »

如本文对您有帮助,就请抽根烟吧!