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

Python 使用条形图的数量设置条形图的宽度/标签大小,python,pandas,matplotlib,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'

我对使用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))

我得到了一个带有正确标签的空绘图(但它确实将大小应用于我稍后创建的piechart?) 我最初想要创建的条形图有基本的1-8个标签


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

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

plt.gcf().set_size_inches(p1,p2)
上面将设置当前
图形
对象的大小,该对象是
pyplot
用于绘制图形的对象。将来,您可能会选择使用,因为它通常更强大、更灵活:

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()

在尽可能少地修改当前代码的情况下,方法是在定义
p1
p2
之后添加以下行:

plt.gcf().set_size_inches(p1,p2)
上面将设置当前
图形
对象的大小,该对象是
pyplot
用于绘制图形的对象。将来,您可能会选择使用,因为它通常更强大、更灵活:

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()
plt.图(figsize=(p1,p2))
是正确的方法。因此,这个问题有点不清楚,因为您只需要将它放在代码中,例如

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

# ...

plt.bar(...)
问题中也显示了这一点:

plt。图(figsize=(p1,p2))
是正确的方法。因此,这个问题有点不清楚,因为您只需要将它放在代码中,例如

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

# ...

plt.bar(...)

这也显示在问题中:

谢谢!我第一次使用随机指南生成图表。在你第一次回答后我开始读这篇文章:但是你已经编辑了我的代码,哈哈。谢谢!我第一次使用随机指南生成图表。在你第一次回答后我开始读这篇文章:但是你已经编辑了我的代码哈哈。我的理解是
plt.show()
将显示
plt.figure
,正如我所说,我得到了一个带有正确标签的空图。如果我将
plt.figure
plt.bar()
结合使用,而不是
plt.show()
它会起作用吗?@MartijnvanAmsterdam您可能已经将
plt.figure(figsize=(p1,p2))
行放在
plt.bar…
行之后了。这将导致当前图形被重置,这将解释为什么您会看到一个空的绘图。重要的是,如果你把
plt.figure
线放在绘图代码上面,它应该可以正常工作。啊,我现在明白了,是的,我确实把它放在我的
plt.bar下…
但是在我的
plt.show()
上面,我的理解是
plt.show()
会显示
plt.figure
,就像我说的,我得到了一个带有正确标签的空绘图。如果我将
plt.figure
plt.bar()
结合使用,而不是
plt.show()
它会起作用吗?@MartijnvanAmsterdam您可能已经将
plt.figure(figsize=(p1,p2))
行放在
plt.bar…
行之后了。这将导致当前图形被重置,这将解释为什么您会看到一个空的绘图。重要的是,如果你把
plt.figure
线放在绘图代码上方,它应该可以正常工作。啊,我现在明白了,是的,我确实把它放在我的
plt.bar下…
但在我的
plt.show()上方