如何在 Matplotlib 中设置图形标题和坐标轴标签字体大小

Suraj Joshi 2023年1月30日
  1. 在 Matplotlib 中调整 fontsize 参数以设置标题和轴的字体大小
  2. 修改 rcParams 字典的默认值
  3. 在 Matplotlib 中通过 set_size() 方法设置标题和轴的字体大小
如何在 Matplotlib 中设置图形标题和坐标轴标签字体大小

Matplotlib 中标题和轴的大小和字体可以通过使用 set_size() 方法调整 fontsize 参数并更改 rcParams 字典的值来设置。

在 Matplotlib 中调整 fontsize 参数以设置标题和轴的字体大小

我们可以在标签和标题方法中调整字体大小参数的适当值,以在 Matplotlib 中设置标签的字体大小和图表标题。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)
y = np.sin(2 * np.pi * x)

fig = plt.figure(figsize=(8, 6))
plt.plot(
    x,
    y,
)
plt.title("Plot of sinx", fontsize=25)
plt.xlabel("x", fontsize=20)
plt.ylabel("sinx", fontsize=20)

plt.show()

调整合适的 fontsize 参数值以设置 fontsize

修改 rcParams 字典的默认值

我们可以更改存储在名为 matplotlib.rcParams 的全局字典式变量中的默认 rc 设置,以设置 Matplotlib 中标签的字体大小和图表标题。

rcParams 的结构:

可以通过 plt.rcParams.keys() 函数获取 rcParams 键的完整列表。

描述
axes.labelsize x 和 y 标签的字体大小
axes.titlesize 轴标题的字体大小
figure.titlesize 图形标题的大小(figure.suptitle()
xtick.labelsize 刻度标签的字体大小
ytick.labelsize 刻度标签的字体大小
legend.fontsize 图例的字体大小(plt.legend()fig.legend()
legend.title_fontsize 图例标题的字体大小,无设置为默认轴。
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)
y = np.sin(2 * np.pi * x)

parameters = {"axes.labelsize": 25, "axes.titlesize": 35}
plt.rcParams.update(parameters)

fig = plt.figure(figsize=(8, 6))
plt.plot(x, y)
plt.title("Plot of sinx")
plt.xlabel("x")
plt.ylabel("sinx")

plt.show()

调整 rcParams 以设置字体大小

在 Matplotlib 中通过 set_size() 方法设置标题和轴的字体大小

首先,我们使用 gca() 方法返回绘图的轴。然后,我们使用 axes.title.set_size(title_size)axes.xaxis.label.set_size(x_size)axes.yaxis.label.set_size(y_size) 来更改标题、x 轴标签和 y 轴标签的字体大小。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)
y = np.sin(2 * np.pi * x)

axes = plt.gca()
plt.plot(x, y)
axes.set_title("Plot of sinx")
axes.set_xlabel("x")
axes.set_ylabel("sinx")

axes.title.set_size(20)
axes.xaxis.label.set_size(16)
axes.yaxis.label.set_size(16)

plt.show()

set_size 方法设置字体大小

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn