【问题标题】:Matplotlib subplot tables change fontsize [duplicate]Matplotlib子图表更改字体大小[重复]
【发布时间】:2021-10-30 06:40:31
【问题描述】:

我试图在 matplotlib 中的同一个图形上绘制多个表格,但无法更改每个表格中单元格文本的字体大小。我实现了类似问题的解决方案(如何更改不在子图中的表格的字体大小),但这没有用。

示例代码:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt



figure = plt.figure(figsize=(11, 5.5))
grid = figure.add_gridspec(2, 2)

ax1 = figure.add_subplot(grid[0, 0])
ax2 = figure.add_subplot(grid[1, 0])
ax3 = figure.add_subplot(grid[0, 1])
ax4 = figure.add_subplot(grid[1, 1])

df = pd.DataFrame(np.random.randn(5, 5))

ax1.axis('off')
t = ax1.table(cellText=df.values, colLabels=df.columns, rowLabels=df.index, loc='center')
t.set_fontsize(14)

ax2.axis('off')
t = ax2.table(cellText=df.values, colLabels=df.columns, rowLabels=df.index, loc='center')
t.set_fontsize(14)

ax3.axis('off')
t = ax3.table(cellText=df.values, colLabels=df.columns, rowLabels=df.index, loc='center')
t.set_fontsize(14)

ax4.axis('off')
t = ax4.table(cellText=df.values, colLabels=df.columns, rowLabels=df.index, loc='center')
t.set_fontsize(14)

【问题讨论】:

    标签: python matplotlib fonts


    【解决方案1】:

    该表具有默认值 auto_set_font_sizeTrue。将其设置为False 并传递您的字体大小。

    例子:

    import pandas as pd
    import numpy as np
    from matplotlib import pyplot as plt
    
    
    
    figure = plt.figure(figsize=(11, 5.5))
    grid = figure.add_gridspec(2, 2)
    
    ax1 = figure.add_subplot(grid[0, 0])
    ax2 = figure.add_subplot(grid[1, 0])
    ax3 = figure.add_subplot(grid[0, 1])
    ax4 = figure.add_subplot(grid[1, 1])
    
    df = pd.DataFrame(np.random.randn(5, 5))
    
    ax1.axis('off')
    t = ax1.table(cellText=df.values, colLabels=df.columns, rowLabels=df.index, loc='center')
    t.set_fontsize(14)
    
    ax2.axis('off')
    t = ax2.table(cellText=df.values, colLabels=df.columns, rowLabels=df.index, loc='center')
    t.set_fontsize(14)
    
    ax3.axis('off')
    t = ax3.table(cellText=df.values, colLabels=df.columns, rowLabels=df.index, loc='center')
    t.set_fontsize(14)
    
    ax4.axis('off')
    t = ax4.table(cellText=df.values, colLabels=df.columns, rowLabels=df.index, loc='center')
    t.auto_set_font_size(False)
    t.set_fontsize(14)
    

    输出:

    【讨论】:

      猜你喜欢
      • 2019-05-20
      • 2023-03-09
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多