要想使用matplotlib,我们需要引用它:
In[1]:importmatplotlib.pyplotasplt假如我们要从2020年1月1日开始,随机生成365天的数据,然后作图表示应该这样写:
使用DF可以同时画多个Series的图像:
可以指定行和列使用的数据:
plot()支持很多图像类型,包括bar,hist,box,density,area,scatter,hexbin,pie等,下面我们分别举例子来看下怎么使用。
多个列的bar:
barh表示横向的bar图:
box可以自定义颜色:
可以转成横向的:
除了box,还可以使用DataFrame.boxplot来画box图:
boxplot可以使用by来进行分组:
现在给df加一列:
使用Series.plot.area()或者DataFrame.plot.area()可以画出area图。
如果不想叠加,可以指定stacked=False
DataFrame.plot.scatter()可以创建点图。
scatter图还可以带第三个轴:
可以将第三个参数变为散点的大小:
使用DataFrame.plot.hexbin()可以创建蜂窝图:
默认情况下颜色深度表示的是(x,y)中元素的个数,可以通过reduce_C_function来指定不同的聚合方法:比如mean,max,sum,std.
使用DataFrame.plot.pie()或者Series.plot.pie()来构建饼图:
可以按照列的个数分别作图:
更多定制化的内容:
如果传入的value值加起来不是1,那么会画出一个伞形:
下面是默认画图方式中处理NaN数据的方式:
可以使用pandas.plotting中的scatter_matrix来画散点矩阵图:
使用Series.plot.kde()和DataFrame.plot.kde()可以画出密度图:
安德鲁斯曲线允许将多元数据绘制为大量曲线,这些曲线是使用样本的属性作为傅里叶级数的系数创建的.通过为每个类对这些曲线进行不同的着色,可以可视化数据聚类。属于同一类别的样本的曲线通常会更靠近在一起并形成较大的结构。
平行坐标是一种用于绘制多元数据的绘制技术。平行坐标允许人们查看数据中的聚类,并直观地估计其他统计信息。使用平行坐标点表示为连接的线段。每条垂直线代表一个属性。一组连接的线段代表一个数据点。趋于聚集的点将显得更靠近。
他是基于弹簧张力最小化算法。它把数据集的特征映射成二维目标空间单位圆中的一个点,点的位置由系在点上的特征决定。把实例投入圆的中心,特征会朝圆中此实例位置(实例对应的归一化数值)“拉”实例。
matplotlib1.5版本之后,提供了很多默认的画图设置,可以通过matplotlib.style.use(my_plot_style)来进行设置。
可以通过使用matplotlib.style.available来列出所有可用的style类型:
画图中如果X轴或者Y轴的数据差异过大,可能会导致图像展示不友好,数值小的部分基本上无法展示,可以传入logy=True进行Y轴的缩放:
使用secondary_y=True可以绘制多个Y轴数据:
小图标上面默认会添加right字样,想要去掉的话可以设置mark_right=False:
如果有多个图像需要调整,可以使用with:
绘制DF的时候,可以将多个Series分开作为子图显示:
可以修改子图的layout:
上面等价于:
In[139]:df.plot(subplots=True,layout=(2,-1),figsize=(6,6),sharex=False);一个更复杂的例子:
如果设置table=True,可以直接将表格数据一并显示在图中:
table还可以显示在图片上面:
如果Y轴的数据太多的话,使用默认的线的颜色可能不好分辨。这种情况下可以传入colormap。