用Python在图中添加一个数据表
在这篇文章中,我们将学习如何使用Python向图表中添加数据表。
尽管matplotlib 主要是一个绘图库,但在制作图表时,它也能协助我们完成一些小任务,比如在我们有吸引力的视觉效果旁边有一个漂亮的数据表格。
关键是要理解我们为什么要在绘图中添加一个表。以视觉方式绘制数据的主要目的是澄清原本无法理解(或几乎无法理解)的数据值。现在我们要把数据加回去。直接在图表下面放一个大的数值表是不可取的。
然而,从整个图表数据集中适当选择,也许是加总,或突出显示的数值,可能会确定图表的重要区域,或突出显示那些准确数值(例如,以美元计的年销售额)很重要(甚至是必须的)的地方的重要数值。
用数据表绘制地图
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。
- 使用import关键字来导入matplotlib和numpy 模块的pylab 。
- 使用pylab模块的figure() 函数(用于创建一个新的图形)创建一个新的图形。
- gca() 函数(在当前图形上获取或创建与指定关键字args匹配的当前轴对象)
- 创建一个变量,通过给出一些随机值来存储列标签 的列表。
- 创建另一个变量,通过给出一些随机值来存储行标签 的列表。
- 创建另一个变量,通过给出一些随机值来存储一个表的值 列表。
- 创建另一个变量,通过给出一些随机值来存储行 的颜色 列表。
- 使用table() 函数创建一个表格,将上面给出的表格值、宽度、行、列标签、行的颜色和要放置的位置作为参数分配给它。
- 使用plot() 函数来绘制图表。
- 使用show() 函数来显示图。
例子
下面的程序通过添加一个数据表来显示绘图:
# importing pylab of matplotlib, NumPy modules
import matplotlib.pylab as plt
import numpy as np
# creating a new figure
plt.figure()
# Find the most recent instance of matplotlib.axes.Axes on the current figure
ax = plt.gca()
# Get some random number
y = np.random.randn(9)
# list of column labels
columnLabels = ['column_1','column_2','column_3']
# list of row labels
rowLabels = ['row_1','row_2','row_3']
# list of values of a table
tableValues = [[10, 15, 20], [8, 18, 25], [12, 30, 16]]
# list of colors of a row
rowColors = ['pink', 'yellow', 'green']
# creating a table using table() function by assigning table values,
# widths, above given row, column labels, row colors, location to be placed
# as arguments to it.
my_table = plt.table(cellText=tableValues,
colWidths=[0.1] * 3,
rowLabels=rowLabels,
colLabels=columnLabels,
rowColours=rowColors,
loc='upper right')
# plotting a plot
plt.plot(y)
# displaying the plot
plt.show()
输出
在执行时,上述程序将产生以下输出:
它是如何工作的
我们用plt.table() 函数创建一个单元格表,并将其添加到当前轴上。行和列的标题在表中是可选的。每个表格单元格中都可以找到补丁或文本。表格的列宽和行高可以自定义。返回值是一个构成表格的对象(文本、行和补丁实例)的列表。
plt.table()函数的语法
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)
该函数创建并返回matplotlib.table.Table 实例。这在matplotlib中很常见;只有一种方法可以将表添加到图中。可以直接访问面向对象的接口。我们可以利用matplotlib.table.Table的实例,将其添加到图中。
我们可以直接使用matplotlib.table.Table 类,在使用add_table() 函数将其添加到坐标轴实例之前,对我们的表格进行微调。
总结
在这篇文章中,我们学习了如何使用Python的plt.table()方法将一个数据表添加到图中。为了更好地理解这个table()方法的操作,我们还学习了它的语法。