我有一个小数据框,如下所示:
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')
答案 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')