【matplotlib】可视化解决方案——如何向图表中添加数据表

news2024/11/13 15:50:46

概述

虽然 matplotlib 主要用途是绘图,但是他还是可以在绘图时帮助我们做一些其他事务,比如在图表旁边放置一个整齐的数据表格。我们必须明白为数据绘制可视化图形主主要是是为了解释那些不能理解的数据。将一些来自数据整体集合的总结性或者突出强调的值放在图表旁边可以更好的帮助我们理解数据,例如平均销售额等。

在 matplotlib 中有一个专门的模块 matplotlib.table 用于管理和表格相关事情,在 matplotlib.table 文件有 Cell、Table 两个类以及包装方法 table(),Table 类是一个由单元格组成的表格,(0, 0)位于表格的左上角。在实际使用中都是调用 pyplot.talbe() API 快速创建 Table 实例,这个方法的底层调用链是 pyplot.table() -> table.table() 方法。Table 类的解析如下:

class Table(Artist):
	# ax:指定绘制表格Axes对象;
	# loc:指定表格相当于Axes对象的位置。
	# bbox:指定表格的边界,可以是Bbox对象或者[xmin, ymin, width, height]
	def __init__(self, ax, loc=None, bbox=None, **kwargs):
		...
		# 同上
		self._axes = ax  
		# 同上
		self._loc = loc  
		# 同上
		self._bbox = bbox
		# 存储每个位置的Cell对象,(M, N) = Cell()
		self._cells = {}
		...

	def add_cell(self, row, col, *args, **kwargs):
		xy = (0, 0)  
		# 创建Cell对象
		cell = CustomCell(xy, visible_edges=self.edges, *args, **kwargs)  
		# 添加Cell对象到字典中
		self[row, col] = cell  
		return cell
	

Cell 类负责表格中每一个单元格的创建,继承自 Rectangle 类,本质上是带有文本的矩形。它的源码解析如下:

class Cell(Rectangle):
	# xy:指定单元格左下角的位置
	# width:指定单元格宽度
	# height:指定单元格高度
	# edgecolor:指定单元格边框颜色
	# facecolor:指定单元格颜色
	# fill:指定是否填充单元格
	# text:指定单元格文本
	# loc:指定单元格内部文本排版
	# fontproperties:指定单元格文本属性
	# visible_edges:指定单元格边框的渲染形式
	def __init__(self, xy, width, height,  
             edgecolor='k', facecolor='w',  
             fill=True,  
             text='',  
             loc=None,  
             fontproperties=None  
             ):

接下来介绍一下 matplotlib 的快速创建方法 pyploy.table(),他的分析如下:

# cellText:指定放入单元格的字符串
# cellColours:指定每个单元格的背景颜色
# cellLoc:指定单元格文本排版
# colWidths:指定列宽
# rowLabels:指定标题行文本
# rowColours:指定标题行颜色
# rowLoc:指定标题行排版
# cowLabels:指定标题列文本
# cowColours:指定标题列颜色
# cowLoc:指定标题列排版
# loc:指定表格相当于Axes对象的位置。
# bbox:指定表格的边界,可以是Bbox对象或者[xmin, ymin, width, height]
def table(  
        cellText=None, cellColours=None, cellLoc='right',  
        colWidths=None, rowLabels=None, rowColours=None,  
        rowLoc='left', colLabels=None, colColours=None,  
        colLoc='center', loc='bottom', bbox=None, edges='closed',  
        **kwargs):
        ...

示例

最后我们以一个示例来进行综合演示,

import matplotlib.pyplot as plt  
import numpy as np  
  
plt.figure()  
ax = plt.gca()  
y = np.random.randn(9)  
  
col_labels = ['col1', 'col2', 'col3']  
row_labels = ['row1', 'row2', 'row3']  
table_vals = [[1, 12, 13],  
              [22, 21, 23],  
              [28, 29, 30]]  
  
  
row_colors = ['red', 'green', 'gold']  
  
my_table = plt.table(cellText=table_vals,  
                     cellLoc='center',  
                     colWidths=[0.1] * 3,  
                     rowLabels=row_labels,  
                     colLabels=col_labels,  
                     rowColours=row_colors,  
                     loc='upper right')  
  
plt.plot(y)  
plt.show()

画图结果如下:

在这里插入图片描述

往期回顾

  1. 【matplotlib】可视化解决方案——如何更改绘图区域背景颜色
  2. 【matplotlib】可视化解决方案——如何使用数学公式
  3. 【matplotlib】可视化解决方案——绘图刻度设置
  4. 【matplotlib】可视化解决方案——共享绘图区域问题
  5. 【matplotlib】可视化解决方案——子图设置大标题问题解决方案
  6. 【matplotlib】可视化解决方案——子图间距问题解决方案
  7. 【matplotlib】可视化解决方案——capstyle参数详解
  8. 【matplotlib】可视化解决方案——joinstyle参数详解
  9. 【matplotlib】可视化解决方案——linestyle参数详解
  10. 【matplotlib】可视化解决方案——柱状图标注问题

在这里插入图片描述

文中难免会出现一些描述不当之处(尽管我已反复检查多次),欢迎在留言区指正,相关的知识点也可进行分享,希望大家都能有所收获!!如果觉得我的文章写得还行,不妨支持一下。你的每一个转发、关注、点赞、评论都是对我最大的支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/359645.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大地量子全面使用亚马逊云科技提供的多样化云服务

近年来,我国光伏和风电并网装机容量持续增长,截至2021年底,全国可再生能源装机规模突破10亿千瓦,占总发电装机容量的44.8%。其中,风电装机3.28亿千瓦、光伏发电装机3.06亿千瓦。风光电总装机和新增装机规模多年来位居全…

PCB设计中降低噪声与电磁干扰的24个窍门

电子设备的灵敏度越来越高,这要求设备的抗干扰能力也越来越强,因此PCB设计也变得更加困难,如何提高PCB的抗干扰能力成为众多工程师们关注的重点问题之一。本文将介绍PCB设计中降低噪声与电磁干扰的一些小窍门。 下面是经过多年设计总结出来的…

MyBaits

MyBaitsMyBaits的jar包介绍MyBaits的入门案例创建实体java日志处理框架常用的日志处理框架Log4j的日志级别Mybatis配置的完善Mybatis的日志管理使用别名alias方式一方式二SqlSession对象下的常用API查询操作Mapper动态代理Mapper 动态代理规范查询所有用户根据用户ID查询用户Ma…

MMPBSA计算--基于李继存老师gmx_mmpbsa脚本

MMPBSA计算–基于李继存老师gmx_mmpbsa脚本 前期准备 软件安装 安装gromacs, 可以查阅 我的blogGromacs-2022 GPU-CUDA加速版 unbantu 安装 apbs, sudo apt install apbs 安装 gawk, sudo apt install gawk MD模拟好的文件 我们以研究蛋白小分子动态相互作用-III(蛋白配体…

钓鱼网站+bypassuac提权

本实验实现1 :要生成一个钓鱼网址链接,诱导用户点击,实验过程是让win7去点击这个钓鱼网站链接,则会自动打开一个文件共享服务器的文件夹,在这个文件夹里面会有两个文件,当用户分别点击执行后,则…

【面试题】vue中的插槽是什么?

大厂面试题分享 面试题库后端面试题库 (面试必备) 推荐:★★★★★地址:前端面试题库一、slot是什么在HTML中 slot 元素 ,作为 Web Components 技术套件的一部分,是Web组件内的一个占位符该占位符可以在后期…

Docker----------day3

常规安装大体步骤 1.安装tomcat 1.查找tomcat docker search tomcat2.拉取tomcat docker pull tomcat3.docker images查看是否有拉取到的tomcat 4.使用tomcat镜像创建容器实例(也叫运行镜像) docker run -it -p 8080:8080 tomcat5.新版tomcat把webapps.dist目录换成webapp…

100种思维模型之九屏幕分析思维模型-016

一、认识九屏幕分析思维模型 1.九屏幕分析思维模型定义 九屏幕法是TRIZ理论中的创新思维方法五大方法之一。它是把问题当成一个系统来研究, 关注系统的整体性、 层级性、目的性,即各要素之间的结构。 九屏幕法是按照时间和系统层次两个维度进行思考。 包…

MAC中docker搭建fastdfs

1:首先搭建Docker2:通过Docker搭建fastdfs(1)查找镜像打开终端通命令查找fastdfs的镜像docker search fastdfs(二)拉取镜像在找到合适的镜像后执行命令:docker pull delron/fastdfs(三) 创建storage和track…

软件设计(十四)-UML建模(上)

软件设计(十三)-原码、反码、补码、移码https://blog.csdn.net/ke1ying/article/details/129115844?spm1001.2014.3001.5501 UML建模包含:用例图,类图与对象图,顺序图,活动图,状态图&#xff…

论文复现:模拟风电不确定性——拉丁超立方抽样生成及缩减场景(Matlab)

风电出力的不确定性主要源于预测误差,而研究表明预测误差(e)服从正态分布且大概为预测出力的10%。本代码采用拉丁超立方抽样实现场景生成[1,2]、基于概率距离的快速前代消除法实现场景缩减[3],以此模拟了风电出力的不确定性。 1 …

26岁曾月薪15K,现已失业3个月,我依然没有拿到offer......

我做测试5年,一线城市薪水拿到15K,中间还修了一个专升本,这个年限不说资深肯定也是配得上经验丰富的。今年行情不好人尽皆知,但我还是对我的薪水不是很满意,于是打算出去面试,希望可以搏一个高薪。 但真到面…

无聊小知识01.serialVersionUID的作用

什么是serialVersionUIDJava(TM)对象序列化规范中描述到:serialVersionUID用作Serializable类中的版本控件。如果您没有显式声明serialVersionUID,JVM将根据您的Serializable类的各个方面自动为您执行此操作。(http://docs.oracle…

神经网络的基本骨架—nn.Module使用

一、pytorch官网中torch.nn的相关简介可以看到torch.nn中有许多模块:二、Containers模块1、MODULE(CLASS : torch.nn.Module)import torch.nn as nn import torch.nn.functional as Fclass Model(nn.Module):#nn.Module---所有神经网络模块的…

Find Any File for Mac,本地文件搜索工具

Find Any File for Mac是一款简单好用的本地文件搜索工具,可以让你在本地磁盘上搜索、查找任何文件,包括本地磁盘的名称、 创建或修改日期、 大小或类型和创建者代码等。更好的结果:它为找到的项目提供了另一种分层视图。您可以使用cmd 2切换…

Kafka 安装入门实战

1.下载Kafka 有2个下载网站都可以: https://www.apache.org/dyn/closer.cgi?path/kafka/3.4.0/kafka_2.13-3.4.0.tgz https://kafka.apache.org/downloads 下载完后解压缩: [roottest ~]# tar -xzf kafka-3.4.0-src.tgz [roottest ~]# cd kafka_2.12-…

C# String与StringBuilder 的区分

重点 1)它是比较的栈里面的值是否相等(值比较) 2)Equals它比较的是堆里面的值是否相等(引用地址值比较) 3)Object.ReferenceEquals(obj1,obj2)它是比较的是内存地址是否相等 问题描述: 今日提交代码时候,被检测工具发出修改建议。遂补充一下知识 1.什么…

【科研】一目了然单目深度估计实验评价指标

1.度量指标表概览(自整待完善) SI Scale-Invariant loss尺度不变损失YES像素深度损失bi-directional chamfer loss双向槽损失YESBin中心稠密损失L1 loss & LAD & LAEL1范数损失函数 把目标值与估计值的绝对差值的总和最小化 RMSE Root Mean …

从Tomcat源码中寻找request路径进行注入

前言 前面主要是通过寻找一个全局存储的request / response来进行Tomcat中间下的回显,但是在tomcat 7环境下并不能够获取到StandardContext对象,这里李三师傅在前文的基础中发现了在AbstractProtocol$ConnectionHandler#register的调用中不仅像之前的思…

【蓝桥集训】第五天——递推

作者:指针不指南吗 专栏:Acwing 蓝桥集训每日一题 🐾或许会很慢,但是不可以停下来🐾 文章目录1.砖块递推算法是一种简单的算法,通过已知条件,利用特定关系得出中间推论,逐步递推&…