python - 通过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')
解决方案
重构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])
推荐阅读
- python - Pytest 和 pytest-cov 引发 CoverageException
- python - 如何在 python-telegram-bot 中接收文件?
- apache-spark - RDD and PipelinedRDD type
- javascript - 在threejs中的特定对象和相机之间隐藏对象
- c# - 使用like在查询中获取多个值
- javascript - C:\Program Files\Docker Toolbox\docker.exe:引用格式无效:存储库名称必须为小写
- django - drf-yasg 自定义 SwaggerUIRenderer
- bash - 将目录文件复制到另一个目录的问题
- dht - 为什么使用无跟踪器下载时 DHT 找不到资源?
- javascript - 当我使用具有匿名功能的外部 ja 文件时,我收到 Uncaught TypeError: Cannot read property 'addEventListener' of null