我目前正在这里做这个教程: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)
如何让它实际显示图表?
答案 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()
答案 1 :(得分:1)
如果您未处于交互模式,则可能需要在代码之前添加plt.figure()
,之后添加plt.show()
。