我有三个堆叠的条形图,它们必须正确显示,但我想并排显示(与三个不同的图(一个在另一个下)相对)。

当前分别显示三个图形的代码是(其中axX_Group是其中包含我的数据的数据框)。

ax1_Group.plot(kind='barh', stacked=True, figsize=(6,15), title='Makes and Years (Pre 2000)')
ax2_Group.plot(kind='barh', stacked=True, figsize=(6,20), title='Makes and Years (2000-2009)')
ax3_Group.plot(kind='barh', stacked=True, figsize=(6,20), title='Makes and Years (2010+)')


我知道我必须使用subplot函数在一个图形上绘制图形,但是似乎无法弄清楚如何正确分配当前图形。

我的主要问题是,我在网上遇到的所有示例都使用子图函数来分配图的位置(据我所知),然后将图绘制为X和Y的函数-如下所示:

 figure = plt.figure()
 ax1 = figure.add_subplot(311)
 ax2 = figure.add_subplot(312)
 ax3 = figure.add_subplot(313)

 ax1.plot(x1,y1)
 ax2.plot(x2,y2)
 ax3.plot(x3,y3)


我需要弄清楚如何使用ax1.plot(X,Y)部分,以便我可以调用.plot(堆积的条形图)

    ax1_Group.plot(kind='barh', stacked=True, figsize=(6,15), title='Makes and Years (Pre 2000)')


所以我已经明白了,但是没有用:

fig = plt.figure()
ax1_Group = fig.add_subplot(131)
ax2_Group = fig.add_subplot(132)
ax3_Group = fig.add_subplot(133)
ax1_Group.plot(ax1_Group.plot(kind='barh', stacked=True, figsize=(6,15), title='Breakdown of Makes and Years (Pre 2000)'))
ax2_Group.plot(ax2_Group.plot(kind='barh', stacked=True, figsize=(6,20), title='Breakdown of Makes and Years (2000-2009)'))
ax3_Group.plot(ax3_Group.plot(kind='barh', stacked=True, figsize=(6,20), title='Breakdown of Makes and Years (2010+)'))


我已经尝试了很多事情,但还做不到。任何帮助将不胜感激。

最佳答案

您可以使用以下代码:

plt.figure()
ax1 = plt.subplot(131)
ax1_Group.plot(ax1_Group.plot(ax = ax1, kind='barh', stacked=True, figsize=(6,15), title='Breakdown of Makes and Years (Pre 2000)'))

ax2 = plt.subplot(132)
ax2_Group.plot(ax2_Group.plot(ax = ax2, kind='barh', stacked=True, figsize=(6,20), title='Breakdown of Makes and Years (2000-2009)'))

ax3 = plt.subplot(133)
ax3_Group.plot(ax3_Group.plot(ax = ax3, kind='barh', stacked=True, figsize=(6,20), title='Breakdown of Makes and Years (2010+)'))

关于matplotlib - 子图堆叠的条形图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31463687/

10-12 17:05