使用条形数量设置条形图的宽度/标签大小

时间:2018-12-18 15:02:48

标签: python pandas matplotlib

使用Matplotlib我很新

我不知道如何将发现的内容应用于自己的图表,所以我决定发表自己的帖子

我使用以下代码生成条形图:

p = (len(dfrapport.index))

p1 = p * 2.5
p2 = p * 1.5

height = dfrapport['aantal']
bars = dfrapport['soort']
y_pos = np.arange(len(bars))


plt.bar(y_pos, height, color = ['black', 'red','orange', 'yellow', 'green', 'blue', 'cyan'])

plt.title('Aantal noodstoppen per categorie')
plt.xlabel('categorieën')
plt.ylabel('aantal')
plt.tick_params(axis='x', which='major', labelsize=p2)

plt.xticks(y_pos, bars)
plt.show()

但是我不知道如何更改情节的大小? 因为当我使用plt.figure(figsize=(p1,p2))

我得到一个带有正确标签的空白图(但是它是否将尺寸应用于以后创建的饼图?) 我最初想要创建的条形图具有基本的1-8标签。

我想根据创建的条形数量更改大小,因为有时我使用的数据不包含类别之一。

2 个答案:

答案 0 :(得分:1)

对当前代码进行尽可能少的人为更改,方法是在定义p1p2之后立即添加以下行:

plt.gcf().set_size_inches(p1,p2)

以上内容将设置Figure用于绘制图形的当前pyplot对象的大小。将来,您可能会转而使用Axes-based interface to Matplotlib,因为它通常更强大,更灵活:

p = (len(dfrapport.index))

p1 = p * 2.5
p2 = p * 1.5

height = dfrapport['aantal']
bars = dfrapport['soort']
y_pos = np.arange(len(bars))

fig = plt.figure(figsize=(p1,p2))
ax = fig.gca()
ax.bar(y_pos, height, color = ['black', 'red','orange', 'yellow', 'green', 'blue', 'cyan'])

ax.set_title('Aantal noodstoppen per categorie')
ax.set_xlabel('categorieën')
ax.set_ylabel('aantal')
ax.xaxis.set_tick_params(which='major', labelsize=p2)

ax.set_xticks(y_pos, bars)
fig.show()

答案 1 :(得分:1)

plt.figure(figsize=(p1,p2))是正确的方法。因此,这个问题尚不清楚,因为您只需要将其放入代码中即可,例如

p = (len(dfrapport.index))
p1 = p * 2.5
p2 = p * 1.5
plt.figure(figsize=(p1,p2))

# ...

plt.bar(...)

这也显示在问题中:How do you change the size of figures drawn with matplotlib?