当前位置:   article > 正文

Python Matplotlib 绘制表格_matplotlib制作表格图片

matplotlib制作表格图片

Python Matplotlib 绘制表格

​ 最近因为开发一个项目,需要用到Matplotlib绘制一些图片和表格,网上找到的一些,感觉总差点意思,绘制个表格感觉有点过于麻烦,因此自己整理了下。

​ 绘制方法直接使用Matplotlib绘制,没有使用别的依赖,我觉得还是比较简洁的,希望对你有所帮助,如果有用,还请给点个赞。

​ 效果图如下所示,如果数据过长的话,可以考虑把横纵交换下,结果如左图所示,显示效果会好一些:

在这里插入图片描述

​ 代码如下:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(1, 2)

# 左侧边栏,如果不需要,在plt.table中注释即可
# rowLabels 与 rowColours中的数据长度要保持一致,同时和数据中的元素个数保持一致--len(data)
rowLabels = ['state', '↑', '↓', '←', '→', 'up', 'down', 'fire']
rowColours = ["#EBB25E", "#F0C9C0", "#F0C9C0", "#F0C9C0", "#F0C9C0", "#F0C9C0", "#F0C9C0", "#F2F2F2"]

# 列表头颜色,需要和单条数据长度保持一致--len(data[0])
colColors = ["#377eb8"]
colColors.extend(["#00ccff"] * 20)

# 左侧结果图数据
data = [[1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0],
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
        [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]]

column_labels = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21"]

# 取消坐标轴
ax[0].axis('off')
ax[0].table(cellText=data,
         colLabels=column_labels,
         colColours=colColors,
         rowColours=rowColours,
         rowLabels=rowLabels,
         cellLoc='center',
         rowLoc='center',
         loc="center")

#数据转置,右侧图数据
transpose_data = np.array(data)
transpose_data = np.transpose(transpose_data).tolist()
# print(transpose_data)
# 取消坐标轴
ax[1].axis('off')
ax[1].table(cellText=transpose_data,
          colLabels=rowLabels,
          colColours=rowColours,
          rowColours=colColors,
          rowLabels=column_labels,
          cellLoc='center',
          rowLoc='center',
          loc="center")
# 将图标保存到硬盘
# plt.savefig('fix.jpg', dpi=300)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
'
运行

​ 表格的横纵表头是支持除字母外的一些简单符号的,比如↑↓←→等,一定程度上还是优化显示的。另一方面,数据部分也是支持字符串的,也支持一些简单的符号,展示效果如下所示:

在这里插入图片描述

​ 本文到此结束,如果还有什么疑惑,可以在评论区留言,如果文章对你有帮助,还请辛苦点赞支持下。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号