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

Python中四个常用绘图库的“绘图原理”深入讲解

时间:2023-03-26 11:26:40 Python

最近有很多读者同学来问我,Python中的绘图库太多了,我知道该学哪个吗?甚至选择了某个图库后,我也不知道怎么学,不知道第一步该做什么,也不知道下一步该做什么。这四个字一学就忘了。其实这也是当时困扰我的一个问题。学完numpy和pandas后,我开始学习matplotlib。反正我很崩溃,每次都觉得画图代码那么多,画图逻辑完全乱七八糟,不知如何是好。后来,随着我的反复学习,我找到了一个学习Python绘图库的方法,那就是学习它的绘图原理。俗话说:知己知彼,百战不殆。原理学完了,剩下的就是熟练的事情了。今天我们就用一篇文章带大家了解一下matplotlib、seaborn、plotly、pyecharts的绘图原理,让大家学起来不再那么吃力!一、Matplotlib绘图原理关于matplotlib更详细的绘图说明,可以参考下面这篇文章,相信看完后你会有所了解。Matplotlib绘图原理:http://suo.im/678FCo1)绘图原理说明通过自己的学习和理解,我将matplotlib绘图原理高度概括为以下几个步骤:①导库;②创建图形画布对象;③获取对应位置的轴坐标系对象;④调用axes对象绘制位置对应的图形;⑤显示图形;2)案例说明#1.导入相关库importmatplotlibasmplimportmatplotlib.pyplotasplt#2.创建图形画布对象figure=plt.figure()#3.获取对应位置的axes坐标系对象axes1=figure.add_subplot(2,1,1)axes2=figure.add_subplot(2,1,2)#4.调用axes对象进行对应位置的Graphplottingaxes1.plot([1,3,5,7],[4,9,6,8])axes2.plot([1,2,4,5],[8,4,6,2]])#5.显示图形figure.show()结果如下:2.seaborn绘图原理在四个绘图库中,只有matplotlib和seaborn有一定的关系,其他绘图库之间没有任何联系,甚至绘图原理也不一样。seaborn是matplotlib的更高级包装器。因此,在学习seaborn之前,首先要知道matplotlib的绘图原理。由于seaborn是matplotlib的一个更高级的封装,matplotlib的那些调参设置在使用seaborn绘制图形后也可以使用。我们知道,在使用matplotlib绘图的时候,需要调整大量的绘图参数,需要记忆很多东西。Seaborn在matplotlib的基础上做了更高级的封装,让绘图更简单。它不需要知道很多底层参数就可以画出很多更精致的图形。不仅如此,seaborn还兼容了numpy和pandas数据结构,在组织数据方面起到了很大的作用,从而更大程度上帮助我们完成数据可视化。由于seaborn的绘图原理与matplotlib一致,这里不再详细介绍。可以参考上面matplotlib的绘图原理来学习seaborn是如何绘图的。这是一个适合所有人的网站。Seaborn绘图原理:http://suo.im/5D3VPX1)案例说明#1.导入相关库importseabornassnsimportmatplotlib.pyplotaspltdf=pd.read_excel("data.xlsx",sheet_name="datasource")sns.set_style("dark")plt.rcParams["font.sans-serif"]=["SimHei"]plt.rcParams["axes.unicode_minus"]=False#注:estimator的意思是对分组后的销量求和.默认为平均。sns.barplot(x="brand",y="salesquantity",data=df,color="steelblue",orient="v",estimator=sum)plt.show()结果如下:注:你看到上面的绘图代码,大家应该会有这样一种感觉,图中既有matplotlib绘图代码,也有seaborn绘图代码。事实上,情况就是这样。我们按照matplobt的绘图原理来画图,只是把一些地方换成seaborn特有的代码。其余的调整格式可以使用matplotlib中的方法进行调整。3.plotly绘图原理首先,在介绍这个图的绘图原理之前,先简单介绍一下plotly绘图库。Plotly是一个基于javascript的绘图库。Plotly绘图类型丰富,效果漂亮;易于保存和分享plotly的绘图结果,可与Web无缝集成;ploty默认的绘制结果是一个HTML网页文件,可以通过浏览器直接查看;它的绘图原理与matplotlib或seaborn无关,需要单独学习。同样,我还是给大家提供一个网址,让大家更详细的学习plotly。绘图原理:http://suo.im/5vxNTu1)绘图原理说明通过自己的学习和理解,我将绘图原理高度概括为以下步骤:①绘制图形轨迹,在ployly中称为trace,每痕迹就是痕迹。②将曲目包裹成列表,形成“曲目列表”。一个曲目放在一个列表中,多个曲目也放在一个列表中。③在创建画布时,将上面的轨道列表传入Figure()。④使用Layout()添加其他绘图参数以改善图形。⑤显示图形。2)案例说明importnumpyasnpimportpandasaspdimportplotlyaspyimportplotly.graph_objsasgoimportplotly.expressionaspxfromplotlyimporttoolsdf=pd.read_excel("plot.xlsx")#1.绘制图形轨迹,称为`在ploylytrace中,每条痕迹都是一条痕迹。trace0=go.Scatter(x=df["年"],y=df["城市居民"],name="城市居民")trace1=go.Scatter(x=df["年"],y=df["RuralResidents"],name="RuralResidents")#2.将轨迹包裹成一个列表,形成一个“轨迹列表”。一个曲目放在一个列表中,多个曲目也放在一个列表中。data=[trace0,trace1]#3.创建画布时,将上面的“tracelist”传递给“Figure()”。fig=go.Figure(data)#4.使用`Layout()`添加其他绘图参数以改善图形。fig.update_layout(title="城乡居民人均收入",xaxis_title="年",yaxis_title="人均收入(元)")#5.显示图形。fig.show()结果如下:4.pyecharts绘图原理Echarts是百度开源的一款数据可视化工具。凭借良好的交互性和精美的图表设计,得到了众多开发者的认可。而python是一种表达性语言,非常适合数据处理。当数据分析遇上数据可视化,pyecharts诞生了。pyecharts分为两个大版本,v0.5和v1。v0.5和v1这两个版本不兼容。v1是一个全新的版本,所以我们的学习尽量以v1版本为基础。和plotly一样,pyecharts的绘图原理和matplotlib、seaborn完全不同。我们需要额外学习他们的绘图原理。基于此,我们还为您提供了一个网站,供您更详细地学习pyecharts。pyecharts的绘图原理:http://suo.im/5S1PF11)绘图原理说明通过自己的学习和理解,我把plotly的绘图原理高度概括为以下几个步骤:①选择图表类型;②声明图形类并添加数据;③选择全局变量;④显示并保存图表;2)案例说明#1.选择图表类型:我们使用的是折线图,所以直接从charts模块导入Line模块;frompyecharts.chartsimportLineimportpyecharts.optionsasoptsimportnumpyasnpx=np.linspace(0,2*np.pi,100)y=np.sin(x)(#2.我们画的是折线图,所以我们需要实例化这个图形类,直接line()就可以了;line()#3.添加数据,分别在x轴和y轴添加数据;(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="我是标题",subtitle="我是标题",title_link="https://www.baidu.com/"),tooltip_opts=opts.TooltipOpts())).render_notebook()#4.render_notebook()用于显示和保存图表;结果如下:小结通过以上的学习,相信大家对这些库的绘图原理有了新的认识。其实不管是什么编程软件的绘图库,都有它的绘图原理。与其盲目地画各种图形,不如先弄清楚它们的套路,然后再去绘图库中的图形练习题。这样下去,我想每个人都会有很大的进步。以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发送“J”还能收到海量学习资料,涵盖Python电子书和教程,数据库编程、Django、爬虫、云计算等。或者去编程学习网了解更多编程技术知识。