【发布时间】:2019-10-09 23:03:31
【问题描述】:
我创建了三个条形图。我想使用非常流行的 fig, ax = plt.subplots 函数将它们全部绘制在一起。我无法让它们正确绘制在一起,但是当我分别运行下面的每一行时,我可以让它们单独显示
ax1 = buyreturns['return30'].plot.bar(grid=True, color=(buyreturns['return30'] > 0).map({True: 'g', False: 'r'}))
ax2 = buyreturns['return60'].plot.bar(grid=True, color=(buyreturns['return60'] > 0).map({True: 'g', False: 'r'}))
ax3 = buyreturns['return90'].plot.bar(grid=True, color=(buyreturns['return90'] > 0).map({True: 'g', False: 'r'}), legend = x)
我想使用 fig, ax = plt.subplots 函数让这些显示在彼此之上。
我尝试了以下代码,返回的视觉效果是所有三个条形图的合并,请参见下面的第一张图片
fig, (ax1, ax2, ax3) = plt.subplots(3, 1, sharex=False, sharey= False, figsize=(24,16))
ax1 = buyreturns['return30'].plot.bar(grid=True, color=(buyreturns['return30'] > 0).map({True: 'g', False: 'r'}))
ax2 = buyreturns['return60'].plot.bar(grid=True, color=(buyreturns['return60'] > 0).map({True: 'g', False: 'r'}))
ax3 = buyreturns['return90'].plot.bar(grid=True, color=(buyreturns['return90'] > 0).map({True: 'g', False: 'r'}), legend = x)
plt.show()
我也尝试过以下代码,它返回第二张图片中的内容。
fig, (ax1, ax2, ax3) = plt.subplots(3, 1, sharex=False, sharey= False, figsize=(24,16))
ax1.bar(len(buyreturns), buyreturns['return30'], bar_width, color=(buyreturns['return30'] > 0).map({True: 'g', False: 'r'}))
ax2.bar(len(buyreturns), buyreturns['return60'], bar_width, color=(buyreturns['return60'] > 0).map({True: 'g', False: 'r'}))
ax3.bar(len(buyreturns), buyreturns['return90'], bar_width, color=(buyreturns['return90'] > 0).map({True: 'g', False: 'r'}))
plt.show()
任何有关如何解决这些问题并返回 3 个条形图的意见都会很棒!谢谢
【问题讨论】:
标签: python matplotlib plot bar-chart subplot