【发布时间】:2018-01-12 00:19:44
【问题描述】:
我正在创建一个两列表格,并希望文本尽可能接近。如何指定第一列右对齐,第二列左对齐?
我尝试将通用 cellloc 设置为一侧(cellloc 设置文本对齐方式)
from matplotlib import pyplot as plt
data = [['x','x'] for x in range(10)]
bbox = [0,0,1,1]
tb = plt.table(cellText = data, cellLoc='right', bbox = bbox)
plt.axis('off') # get rid of chart axis to only show table
然后循环遍历第二列中的单元格以将它们设置为左对齐:
for key, cell in tb.get_celld().items():
if key[1] == 1: # if the y value is equal to 1, meaning the second column
cell._text.set_horizontalalignment('left') # then change the alignment
上面的这个循环没有效果,文本保持右对齐。
我错过了什么吗?或者这不可能?
编辑
一种解决方法是让我将数据分成两个不同的列表,每列一个。这会产生我正在寻找的结果,但我想知道是否有人知道另一种方式。
data_col1 = [xy[0] for xy in data]
data_col2 = [xy[1] for xy in data]
tb = plt.table(cellText = data_col2, rowLabels=data_col1, cellLoc='left', rowLoc='right', bbox = bbox)
【问题讨论】:
标签: python matplotlib