1、说明
Series与DataFrame类型的对象也支持图形绘制,使用对象的plot方法即可。如果绘图数据就存在Series或者DataFrame对象中,我们就可以直接绘制,而无需使用plt.plot。
直接使用Series与DataFrame对象的plot方法绘图,有时候会显得特别方便,尤其是绘制一些简单的图形的时候,很nice!
注意:当利用Series与DataFrame对象的plot方法绘出某个图形后,仍然可以使用matplotlib中的各种绘图参数,来美化自己的图形。
2、Series对象的绘图技巧
1)常用图形绘制
plot默认绘制的是线形图,但是我们可以通过调整其kind参数的值,来绘制其它不同类型的图形。
① 常用图类型
line:线形图
bar:柱形图
barh:条形图
hist:直方图
kde / density:核密度图
pie:饼图
box:箱线图
area:面积图
② 常用参数
color
alpha
stacked:是否堆叠。
③ 两种语法格式
格式一:s.plot(kind=“图类型”)
举例如下:s.plot(kind=“line”)
格式二:s.plot.图类型()
举例如下:s.plot.line()
操作如下:
s1 = pd.Series([1,3,8,10,12]) s2 = pd.Series([5,2,6,4,8]) s1.plot(kind="line",c="r") s2.plot.line(c="b") # 可以看到,我们仍然可以调用matplotlib的其他绘图参数,完善自己的图形。 plt.legend(["2016","2017"],loc="best")
结果如下:
2)案例操作
① 绘制折线图
s1 = pd.Series([5,2,6,4,8]) s1.plot(kind="line",c="r")
结果如下:
② 绘制柱形图(又叫条形图)
s1 = pd.Series([5,2,6,4,8]) s1.plot.bar(color="b") # 当没有这句代码时,横坐标是“睡着”的,因此调整一下横坐标标签的方向。 plt.xticks(rotation=360)
结果如下:
③ 绘制水平柱形图(条形图)
s1 = pd.Series([5,2,6,4,8]) s1.plot.barh(color="g")
结果如下:
④ 绘制直方图
s1 = pd.Series([5,2,6,4,8,5,2,7,4,6,1,8,4,6,3,8,2,6,4,8,5,2,7]) s1.plot.hist(color="m")
结果如下:
⑤ 绘制核密度图
s1 = pd.Series([5,2,6,4,8,5,2,7,4,6,1,8,4,6,3,8,2,6,4,8,5,2,7]) s1.plot(kind="kde",color="r")
结果如下:
⑥ 绘制饼图
s1 = pd.Series([1,1,2,2,3]) # 求出Series中每个元素的占比 s1 = s1.value_counts()/s1.shape display(s1) s1.plot(kind="pie") plt.axis("equal")
结果如下:
⑦ 绘制箱线图
s1 = pd.Series([5,2,6,4,8,5,2,7,4,6,1,8,4,6,3,8,2,4,8,5,2,7]) s1.plot(kind="box",color="r")
结果如下: