pandas-matplotlib 画图初级教程。

来源:互联网 发布:海宁网络招聘 编辑:程序博客网 时间:2024/05/22 12:59

摘要

本文主要是关于在pandas中如何画图(柱状图、曲线图等等)的一个简单教程。pandas 中画图其实也是利用了matplotlib库。所以会matplotlib库的下面的内容可以不用看了。


1.如何画柱状图?

1.1情景一

假如我们有一个数据集data,我们想统计data中某一列(feature)中每个值出现的次数,并给出柱状图分布。我们可以这样做:

需要用到的库:
import pandas as pdimport matplotlib.pyplot as plt 
data['feature'].value_counts()



统计完后,每个取值的总数就有了,下面我想把这个转化成柱状图。可以在上面那句程序的后面直接实现。

newdata['feature'].value_counts().plot.bar()
把图画出来显示出来
plt.show()



画到这里,我们可以发现,这个图很单调。下面我可以设置每个柱子不同的颜色。也非常简单。
newdata['feature'].value_counts().plot.bar(color=['green','red','tan','blue','black'])
plt.show()

matlib所有颜色的取值都在这个链接里,自行参考:所有颜色的取值



来这里,好看多了,但是总感觉少了点东西,我们可以考虑加上图例。图例的作用可以补充说明每个柱子代表什么。
我只要输入:

import matplotlib.patches as mpatches


newdata['feature'].value_counts().plot.bar(color=['green','red','tan','blue','black'])


patch=[]patch.append(mpatches.Patch(color='green', label='sample_1'))patch.append(mpatches.Patch(color='red', label='sample_2'))patch.append(mpatches.Patch(color='tan', label='sample_3'))patch.append(mpatches.Patch(color='blue', label='sample_4'))patch.append(mpatches.Patch(color='black', label='sample_5'))

plt.legend(handles=patch)plt.show()




上面这一部分是每个图例的颜色(color),已经图例的内容(label)


其实到这里信息已经很充足,但是,还是漏了一个直观的信息,就是每个柱子的高度。
具体可以这样实现:


首先把每个柱子的宽度(width)设置成1,在bar()里面添加一个参数即可。
newdata['feature'].value_counts().plot.bar(width=1,color=['green','red','tan','blue','black'])

然后在每个柱子上的0.05高(可以自己设置)上显示柱子的高度。
for i,__ in enumerate(newdata['feature'].value_counts(sort=False).values.tolist()):    plt.text(i,__+0.05, '%.0f' % __, ha='center', va= 'bottom',fontsize=15)
这里简单的解释一下。
plt.text(x,y,s)
x是显示文字的横坐标,y是纵坐标,s是显示的内容。
因此,在上面我们设置每个柱子的宽度是1,故每隔一个单位,就需要显示一次,每次显示的高度即纵坐标就是这个柱子的高度(取值个数)

最后我们得到这个图:




2.未完待续.......



原创粉丝点击