首页 > 解决方案 > 通过matplotlib并排制作仪表图

问题描述

我正在尝试按照本教程制作一个仪表 matplotlib 图,并且我能够制作其中三个。我想知道如何让它们并排。[我只是按照网址中的原始代码]

gauge(labels=['LOW','MEDIUM','HIGH','EXTREME'], \
      colors=['#007A00','#0063BF','#FFCC00','#ED1C24'], arrow=3, title='something') 

gauge(labels=['LOW','MEDIUM','HIGH','EXTREME'], \
      colors=['#007A00','#0063BF','#FFCC00','#ED1C24'], arrow=3, title='anything') 

gauge(labels=['LOW','MEDIUM','HIGH','EXTREME'], \
      colors=['#007A00','#0063BF','#FFCC00','#ED1C24'], arrow=3, title='nothing') 

标签: pythonmatplotlib

解决方案


重构gauge函数,使其接受一个ax参数:

def gauge(labels, colors, arrow, title, ax):
    # other code
    # ...

    # remove this
    # fig, ax = plt.subplots()

    # other code

    ax.set_frame_on(False)
    ax.axes.set_xticks([])
    ax.axes.set_yticks([])
    ax.axis('equal')
    # remove this as well
    # plt.tight_layout()

然后你可以调用:

# create the axes
# play with the numbers
fig, axes = plt.subplots(1,3)

gauge(labels=['LOW','MEDIUM','HIGH','EXTREME'], \
      colors=['#007A00','#0063BF','#FFCC00','#ED1C24'], arrow=3, title='something',
      ax=axes[0])

 gauge(labels=['LOW','MEDIUM','HIGH','EXTREME'], \
      colors=['#007A00','#0063BF','#FFCC00','#ED1C24'], arrow=3, title='anything',
      ax=axes[1]) 

gauge(labels=['LOW','MEDIUM','HIGH','EXTREME'], \
      colors=['#007A00','#0063BF','#FFCC00','#ED1C24'], arrow=3, title='nothing',
      ax=axes[2]) 

推荐阅读