如何使用matplotlib和熊猫绘图?

时间:2015-07-07 11:20:48

标签: python pandas matplotlib

我目前正在这里做这个教程:http://nbviewer.ipython.org/urls/bitbucket.org/hrojas/learn-pandas/raw/master/lessons/01%20-%20Lesson.ipynb

我目前在最后一部分,您必须绘制图表。我正在自己的闲置而不是iPython中运行代码。这是我的代码:

q=df['Births'].plot()

MaxValue = df['Births'].max()

MaxName = df['Names'][df['Births'] == df['Births'].max()].values

Text = str(MaxValue) + " - " + MaxName

plt.annotate(Text, xy=(1, MaxValue), xytext=(8,0),xycoords=('axes fraction', 'data'), textcoords ='offset points')
print("The most popular name")
df[df['Births'] == df['Births'].max()]

print(q)

我得到的输出是:

The most popular name
Axes(0.125,0.1;0.775x0.8)

如何让它实际显示图表?

2 个答案:

答案 0 :(得分:2)

添加plt.show()应该可以解决问题,但如果我可以进行推荐......这个数据可以更好地用条形图表示。像下面这样的东西可以做到这一点:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib

df = pd.DataFrame(data = BabyDataSet, columns=['Names', 'Births'])

matplotlib.style.use('ggplot')

ax = df['Births'].plot(kind = 'bar')
ax.set_xticklabels(df.Names)

ax.annotate('Most Popular Name: {}: {} births'.format(df.max().Names, df.max().Births),
        xy=(1, 1), 
        xytext=(1, 800))

ax.set_title("Number of Births by Name")
ax.set_ylabel("No. Births")

plt.show()

enter image description here

答案 1 :(得分:1)

如果您未处于交互模式,则可能需要在代码之前添加plt.figure(),之后添加plt.show()