尝试使用 plt.subplot 绘制多个条形图
Trying to plot multiple bar charts together using plt.subplot
我创建了三个条形图。我想使用非常流行的 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 函数堆叠在一起显示。
我尝试了以下代码,returned 的视觉效果是所有三个条形图的合并,请参见下面的第一张图片
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()
我也试过下面的代码,return第二张图片是什么。
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()
任何有关如何解决这些问题的意见和 return 3 个条形图都很棒!谢谢
在对 plot()
的调用中使用 ax=<the reference to your axes>
fig, (ax1, ax2, ax3) = plt.subplots(3, 1, sharex=False, sharey= False, figsize=(24,16))
buyreturns['return30'].plot.bar(grid=True, color=(buyreturns['return30'] > 0).map({True: 'g', False: 'r'}), ax=ax1)
buyreturns['return60'].plot.bar(grid=True, color=(buyreturns['return60'] > 0).map({True: 'g', False: 'r'}), ax=ax2)
buyreturns['return90'].plot.bar(grid=True, color=(buyreturns['return90'] > 0).map({True: 'g', False: 'r'}), ax=ax3)
与 Diziet 的回答类似,但更多程序化:
fig, axes = plt.subplots(3, 1, sharex=False, sharey= False, figsize=(24,16))
# range(30,91,30) represents (30,60,90)
for i, ax in zip(range(30,91,30), axes):
col_name = f'return{i}'
colors = (buyreturns[col_name] > 0).map({True: 'g', False: 'r'})
buyreturns[col_name].plot.bar(grid=True,
color=colors,
ax=ax)
plt.show()
我创建了三个条形图。我想使用非常流行的 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 函数堆叠在一起显示。
我尝试了以下代码,returned 的视觉效果是所有三个条形图的合并,请参见下面的第一张图片
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()
我也试过下面的代码,return第二张图片是什么。
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()
任何有关如何解决这些问题的意见和 return 3 个条形图都很棒!谢谢
在对 plot()
ax=<the reference to your axes>
fig, (ax1, ax2, ax3) = plt.subplots(3, 1, sharex=False, sharey= False, figsize=(24,16))
buyreturns['return30'].plot.bar(grid=True, color=(buyreturns['return30'] > 0).map({True: 'g', False: 'r'}), ax=ax1)
buyreturns['return60'].plot.bar(grid=True, color=(buyreturns['return60'] > 0).map({True: 'g', False: 'r'}), ax=ax2)
buyreturns['return90'].plot.bar(grid=True, color=(buyreturns['return90'] > 0).map({True: 'g', False: 'r'}), ax=ax3)
与 Diziet 的回答类似,但更多程序化:
fig, axes = plt.subplots(3, 1, sharex=False, sharey= False, figsize=(24,16))
# range(30,91,30) represents (30,60,90)
for i, ax in zip(range(30,91,30), axes):
col_name = f'return{i}'
colors = (buyreturns[col_name] > 0).map({True: 'g', False: 'r'})
buyreturns[col_name].plot.bar(grid=True,
color=colors,
ax=ax)
plt.show()