matplotlib 文档说
将表格添加到当前坐标区。返回一个 matplotlib.table.Table 实例。要对表格进行更精细的控制,请使用 Table 类并使用 add_table() 将其添加到轴中。
你可以做以下,看看你的表的属性(它和属于该类表的对象):
print the_table.properties() # hint it's a dictionary do: type(the_table.properties() <type 'dict'>
以您认为正确的方式编辑该字典,并更新您的表格,使用:
the_table.update(giveHereYourDictionary)
提示:如果您使用 IPython 或交互式 shell,那么帮助(objectName)就足够了,例如help(the_table) 查看所有对象的方法。
希望这应该会奏效。
好的,我在这里添加了如何处理这类内容的演练。我承认,这不是微不足道的,但我使用 matplotlib 已经 3.5 年了,所以......
在 IPython 中编写代码(我之前说过,但我必须再次强调),它确实有助于检查对象具有的所有属性(键入对象名称,然后键入键):
In [95]: prop=the_table.properties()
In [96]: prop #This is a dictionary, it's not so trivial, but never the less one can understand how dictionaries work...
Out[96]:
{'agg_filter': None,
'alpha': None,
'animated': False,
'axes': <matplotlib.axes.AxesSubplot at 0x9eba34c>,
'celld': {(0, -1): <matplotlib.table.Cell at 0xa0cf5ec>,
(0, 0): <matplotlib.table.Cell at 0xa0c2d0c>,
(0, 1): <matplotlib.table.Cell at 0xa0c2dec>,
(0, 2): <matplotlib.table.Cell at 0xa0c2ecc>,
(1, -1): <matplotlib.table.Cell at 0xa0cf72c>,
(1, 0): <matplotlib.table.Cell at 0xa0c2fac>,
(1, 1): <matplotlib.table.Cell at 0xa0cf08c>,
(1, 2): <matplotlib.table.Cell at 0xa0cf18c>,
(2, -1): <matplotlib.table.Cell at 0xa0cf84c>,
(2, 0): <matplotlib.table.Cell at 0xa0cf28c>,
(2, 1): <matplotlib.table.Cell at 0xa0cf3ac>,
(2, 2): <matplotlib.table.Cell at 0xa0cf4cc>},
'child_artists': [<matplotlib.table.Cell at 0xa0c2dec>,
<matplotlib.table.Cell at 0xa0cf18c>,
<matplotlib.table.Cell at 0xa0c2d0c>,
<matplotlib.table.Cell at 0xa0cf84c>,
<matplotlib.table.Cell at 0xa0cf3ac>,
<matplotlib.table.Cell at 0xa0cf08c>,
<matplotlib.table.Cell at 0xa0cf28c>,
<matplotlib.table.Cell at 0xa0cf4cc>,
<matplotlib.table.Cell at 0xa0cf5ec>,
<matplotlib.table.Cell at 0xa0c2fac>,
<matplotlib.table.Cell at 0xa0cf72c>,
<matplotlib.table.Cell at 0xa0c2ecc>],
'children': [<matplotlib.table.Cell at 0xa0c2dec>,
<matplotlib.table.Cell at 0xa0cf18c>,
...snip snap ...
<matplotlib.table.Cell at 0xa0cf72c>,
<matplotlib.table.Cell at 0xa0c2ecc>],
'clip_box': TransformedBbox(Bbox(array([[ 0., 0.],
[ 1., 1.]])), CompositeAffine2D(BboxTransformTo(Bbox(array([[ 0., 0.],
[ 1., 1.]]))), BboxTransformTo(TransformedBbox(Bbox(array([[ 0.25, 0.3 ],
[ 0.95, 0.8 ]])), BboxTransformTo(TransformedBbox(Bbox(array([[ 0., 0.],
[ 8., 6.]])), Affine2D(array([[ 80., 0., 0.],
[ 0., 80., 0.],
[ 0., 0., 1.]])))))))),
'clip_on': True,
'clip_path': None,
'contains': None,
'figure': <matplotlib.figure.Figure at 0x9eaf56c>,
'gid': None,
'label': '',
'picker': None,
'rasterized': None,
'snap': None,
'transform': BboxTransformTo(TransformedBbox(Bbox(array([[ 0.25, 0.3 ],
[ 0.95, 0.8 ]])), BboxTransformTo(TransformedBbox(Bbox(array([[ 0., 0.],
[ 8., 6.]])), Affine2D(array([[ 80., 0., 0.],
[ 0., 80., 0.],
[ 0., 0., 1.]])))))),
'transformed_clip_path_and_affine': (None, None),
'url': None,
'visible': True,
'zorder': 0}
# we now get all the cells ...
[97]: cells = prop['child_artists']
In [98]: cells
Out[98]:
[<matplotlib.table.Cell at 0xa0c2dec>,
<matplotlib.table.Cell at 0xa0cf18c>,
... snip snap...
<matplotlib.table.Cell at 0xa0cf72c>,
<matplotlib.table.Cell at 0xa0c2ecc>]
In [99]:cell=cells[0]
In [100]: cell # press tab here to see cell's attributes
Display all 122 possibilities? (y or n)
cell.PAD
cell.add_callback
...snip snap ...
cell.draw
cell.eventson
cell.figure
...snip snap ...
In [100]: cell.set_h
cell.set_hatch cell.set_height
# this looks promising no? Hell, I love python ;-)
wait, let's examine something first ...
In [100]: cell.get_height()
Out[100]: 0.055555555555555552
In [101]: cell.set_height(0.1) # we just 'doubled' the height...
In [103]: pyplot.show()
和 TA DA:
现在,我要求您使用 for 循环更改所有单元格的高度。
应该不会那么难。
赢得那笔赏金会很高兴;-)