Matplotlib —如何将堆叠的条形图放入子图中

k_n_c

我正在尝试在matplotlib的同一图中绘制两个堆叠的条形图。下面的代码并不是绝对最少的,因为即使我将同一图绘制到两个不同的子图中,也会遇到相同的错误,但是由于没有理由两次绘制相同的图,所以我在groups列中加入了情况平易近人。

df = pd.DataFrame({
   'groups': ['A', 'A', 'B', 'A', 'A', 'B', 'B', 'A', 'B', 'B'],
   'type_one': [223.3, 17.2, 13.5, 2.4, 9.2, 43.3, 15.2, 23.5, 21.4, 98.2],
   'type_two': [419.6, 42.0, 24.6, 33.6, 21.8, 11.5, 12.4, 91.2, 41.3, 16.2]
})

plt.figure(figsize=(12,4))

plt.subplot(121)
df[df.groups=='A'].plot.bar(stacked=True)

plt.subplot(122)
df[df.groups=='B'].plot.bar(stacked=True)

plt.show()

当我在jupyter笔记本中运行此图形时,我得到两个空的子图(一个在另一个图下,因此不在同一图中),然后在下面显示两个图的第二个图。

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

无论我将其设置stacked=True还是False,都会发生这种情况,因此我猜测它与.plot.bar()文档中找不到的某些内容有关。当我尝试相同的东西时plt.bar(),情节通常会产生。

广晃

捕获由创建的轴subplot并传递到bar

ax = plt.subplot(121)
df[df.groups=='A'].plot.bar(stacked=True, ax=ax)

ax = plt.subplot(122)
df[df.groups=='B'].plot.bar(stacked=True, ax=ax)

输出:

在此处输入图片说明

注意您可以使用groupby以下代码简化代码

fig, axes = plt.subplots(1,2,figsize=(12,4))

for (k,d), ax in zip(df.groupby('groups'), axes.flat):
    d.plot.bar(stacked=True, ax=ax)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Matplotlib 的子图中添加多个条形图

如何在matplotlib中获取条形图/堆叠条形图上的标签?

如何在 Matplotlib 图中单独标记条形图?

如何将条形图的值更改为百分比(Matplotlib)

如何将图像添加到轴上的条形图(matplotlib)

如何分别指定matplotlib堆叠条形图的条形中的颜色?

在水平堆叠的条形图中对齐值标签(Matplotlib)

Matplotlib堆叠条形图:需要交换x和高度

面板上的多个堆叠条形图(matplotlib)

熊猫/ matplotlib中的堆叠式交错水平条形图

如何在Matplotlib中的堆叠水平条形图中显示数据值

如何使用matplotlib / pandas绘制非堆叠且非并排的水平条形图?

更有效的Matplotlib堆叠条形图-如何计算底值

如何旋转 matplotlib 条形图?

如何从Matplotlib条形图获取数据

如何将子图和表格放入图形区域 matplotlib

使用matplotlib和子图绘制多个条形图

按升序/降序,Matplotlib,Python在图中显示条形图

Matplotlib在一张图中绘制多个条形图

Matplotlib并排条形图

更新Matplotlib条形图

Matplotlib:堆积条形图

如何在matplotlib的一个图中从熊猫数据框添加多个条形图?

如何消除Matplotlib条形图中的条形之间的间隙

如何在matplotlib pyplot条形图中反转条形大小?

matplotlib条形图黑色-如何删除条形边框

matplotlib条形图黑色-如何删除条形边框

Matplotlib 条形图,条形在彼此之上,如何创建空间

如何在熊猫中添加堆叠条形图孵化?(...或者如何在 Pandas plot 与 matplotlib 中获取 BarContainer 与 AxisSubplot?)