python - 更改特定 matplotlib 表格单元格的字体大小
问题描述
我目前正在 matplotlib 中使用 pyplot 做一个项目,我无法在我的表格的某些单元格中指定字体大小。我尝试了不同的方法,但似乎都不起作用。
我创建我的表。
def detail_grid(self, ax, ra, dec):
ax.axis('off')
SNR, doppler = self.SNR_and_doppler()
title = ['Parameters']
labels = ['RA', 'Dec', 'SNR', 'Doppler']
values = [
[fr'{ra}$^\circ$'],
[fr'{dec}$^\circ$'],
[f'{SNR}dB'],
[f'{doppler}' + r'$\frac{km}{s}$']]
loc = 'center'
colwidth = [0.5, 0.1]
color = [colors.to_rgba('g', 0.25)]*4
# cellcolor = ['k']*4
table = ax.table(cellText = values, colLabels = title, rowLabels = labels, colColours = color, rowColours = color, rowLoc = loc, cellLoc = loc, loc = 9, colWidths = colwidth)
table.set_fontsize(24)
该函数采用子图网格形式的轴和我想在表格中显示的一些坐标。上面的代码产生了下面的图(注意,只有右上角的表格)。 上面代码生成的表格,所有文字都是相同的字体
我想做的是减小白色单元格的字体大小,所以我在表格网格中找到它们的位置,my_table.get_celld().items()
并使用 for 循环遍历单元格,只选择我希望更改字体大小的单元格。
for key, cell in table.get_celld().items():
if key[1] == 0 and key[0] != 0:
cell.set_fontsize(10)
print(key, cell.get_text().get_text())
打印出单元格的值我确定我选择了正确的单元格,因为我得到了以下输出(值不一样,但在这种情况下并不重要)。
(1, 0) 84.6$^\circ$
(2, 0) 40.8$^\circ$
(3, 0) 14.359dB
(4, 0) 83.3$\frac{km}{s}$
虽然我留下的结果有点令人困惑。 所有单元格的字体大小都更改为 10。
我还尝试在没有 for 循环的情况下设置字体大小,结果也相同(所有单元格都会更改字体大小)。
cells = table.get_celld()
cells[(1,0)].set_fontsize(10)
我希望有人能帮我弄清楚如何只更改表格中白色单元格的字体大小!
解决方案
推荐阅读
- java - 尝试在 Mac 上卸载 java 失败
- mysql - 创建一个触发器,将字段添加到 +5 并在另一个表中创建总计
- java - 如何仅将线程的值与同一线程的其他线程相加
- java - 从eclipse中的maven项目调用方法java
- python - 在 Pandas 中应用列作为聚合参数时按多列分组和聚合?
- asp.net-core - 如何将 AspNetCore 从 2.2.0 更新到 2.2.2
- java - 为什么 startActivityForResult() 不导致 onActivityResult() 执行?
- javascript - UnhandledPromiseRejectionWarning:错误:提供了不正确的登录详细信息
- vmware - 从来宾连接到在 VMWare Fusion 主机上运行的东西
- android - 为什么在尝试获取用户信息时 findViewById 返回 null?