总第57篇

01|Figure和Subplot:

matplotlib的图像都位于figure对象中,相当于一块画布。figure的属性figsize是用来设置figure的大小的。subplot是用来存放坐标系的,一个figure中可以有多个subplot。

在程序开头加(%matplotlib)是为了显示figure,如果不加则不会跳出figure图框。而(%matplotlib inline)则是直接显示在编程界面,不重新跳出做图框。

如果我们没有指定在哪个ax上进行作图,matplotlib会默认选择最后一个(如果没有则创建一个)上进行绘制。下面这条命令就没有指定。

也可以直接一次性创建多个图框,然后在使用的时候进行索引使用就行,比如下面的subplots(2,3)就是一次性建立两行三列个坐标,而axes[0,1]则表示利用第0行第2列对应的图框。

subplots的参数:除几行几列外,还有sharex和sharey,表示x(y)轴的刻度是否要保持相等的刻度。默认情况是False,即不相等。

调整subplot周围的间距:默认情况下,matlibplot会在subplot外围以及sbuplot之间留下一定的边距。图像的大小和间距是相关的,如果你调整了图像大小,间距也会自动调整。利用Figure的subplots_adjust方法可以用来修改间距。

02|颜色,标记和线型:

常用颜色用英文字母的首字母来代替。

标记是用在线性图上来强调实际数据点的。

线性是表示线的形状。

03|刻度、标签和标题:

04|图例:

在添加subplot的时候传入label参数,然后调用ax.legend()或plt.legend()即可。

06|Pandas作图:

matplotlib是一种比较低级的工具,要组装一张图表,需要用到它的各种组件才可以,包括图表类型(线型图、柱状图、盒形图、散布图、等值线图等)、图例、标题、刻度标签以及其他注释信息。这是因为制作一张完整的图表都需要用到这些,但是matplotlib要实现这种功能需要很多行代码,而pandas可能只需要几行代码就可以搞定。线型图:Series和DataFrame都有自己的plot方法,plot默认创建的是线形图,Series.plot()和DataFrame.plot()。

柱状图:需要给plot方法传入参数kind,其中kind='bar'表垂直柱状图、kind='barh'表水平柱状图。Series和DataFrame的索引将会被用作X(或Y)轴的刻度。柱状图中有个特例就是堆积柱状图,只需要给plot传入参数stacked='True'即可。还可以利用s.value_counts().plot(kind='bar')来图形化显示Series中各值出现的频率。

直方图:是一种可以对值频率离散化显示的柱状图。通过调用Series.hist()方法即可创建。

密度图:与直方图相关的一种类型图,是通过计算“可能会产生观测数据的连续概率分布的估计”而产生的,通过给plot传入参数kind='kde'即可。

散布图:是观测两个一维数据序列之间关系的有效手段,使用pd.scatter_matrix()即可建立。

作者:张俊红

授权转载

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐