熊猫条形图问题

时间:2013-10-04 08:38:22

标签: python matplotlib pandas

我有一个小数据框,如下所示:

In [639]: x
Out[639]:
    Local    State
1   3.2      6.2
2   5.3      10.4
3   14.9     29.17
4   8.5      16.6
5   6.95     13.5
6   12.3     23.9

我使用以下代码创建条形图,并尝试调整它。问题是,代码不是调整生成的条形图,而是创建一个空图,下面是Pandas条形图。这很难描述,所以我附上了一张照片。有什么想法吗?

编辑:如果我选择并尝试绘制单个列(例如x.['col1'].plot(kind='bar'),而不是尝试绘制2列数据帧,那么代码工作正常。这令人困惑......

谢谢!

plt.figure(figsize = (8,6), dpi = 72)
plt.xlabel('RF Region')
plt.ylabel('Frequency [%]')
plt.title('Distribution of Rating Results')
ylim(0,50)

x.plot(kind='bar',color=colors,alpha=0.75)
ax = plt.gca()
ax.yaxis.set_major_locator(MultipleLocator(10))
ax.yaxis.set_minor_locator(MultipleLocator(5))
plt.grid(b=True, which='major', linewidth=1.0)
plt.grid(b=True, which='minor')

enter image description here

1 个答案:

答案 0 :(得分:2)

问题是你创建了一个带有轴的图形,然后你使用pandas plot再做一次,最后得到两个数字。您应该将(已创建的)axis对象传递给plot函数。这样,大熊猫将在特定的axis上绘制,而不是创建一个新的。例如:

plt.figure(figsize = (8,6), dpi = 72)
plt.xlabel('RF Region')
plt.ylabel('Frequency [%]')
plt.title('Distribution of Rating Results')
ylim(0,50)
ax = plt.gca()
colors= ['r', 'b']
df.plot(kind='bar',color=colors, alpha=0.75, ax=ax)
ax.yaxis.set_major_locator(MultipleLocator(10))
ax.yaxis.set_minor_locator(MultipleLocator(5))
plt.grid(b=True, which='major', linewidth=1.0)
plt.grid(b=True, which='minor')