font.sans-serif
和 font.family
在 Matplotlib 中的区别和联系:
-
font.family
:- 这是一个全局设置,用于指定图表中默认使用的字体家族。你可以设置为特定的字体名称(如
'Arial'
、'Times New Roman'
等),也可以设置为通用字体族名(如'sans-serif'
、'serif'
等)。 - 当你设置
font.family
为'sans-serif'
时,Matplotlib 会从font.sans-serif
列表中选择一个可用的无衬线字体来使用。
- 这是一个全局设置,用于指定图表中默认使用的字体家族。你可以设置为特定的字体名称(如
-
font.sans-serif
:- 这是一个字体列表,包含了 Matplotlib 在需要使用无衬线字体时可以尝试的字体名称。
- 当你将
font.family
设置为'sans-serif'
时,Matplotlib 会按照font.sans-serif
列表中的顺序,尝试使用列表中的第一个可用的无衬线字体。如果第一个字体不可用,它会尝试列表中的下一个字体,直到找到一个可用的字体或回退到默认字体。
示例: 假设你想在图表中使用无衬线字体,并且希望首选字体是 'Arial'
,如果 'Arial'
不可用,则使用 'Liberation Sans'
。你可以这样设置:
python
import matplotlib.pyplot as plt
# 设置无衬线字体列表,Matplotlib 会按顺序尝试这些字体
plt.rcParams['font.sans-serif'] = ['Arial', 'Liberation Sans']
# 设置图表默认使用无衬线字体
plt.rcParams['font.family'] = 'sans-serif'
# 绘制一个包含中文的图表
plt.plot([1, 2, 3], [4, 5, 6])
plt.title('示例图表')
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.show()
在这个例子中:
font.sans-serif
定义了一个无衬线字体的候选列表。font.family
设置为'sans-serif'
,告诉 Matplotlib 我们希望使用无衬线字体。- Matplotlib 会根据
font.sans-serif
列表中的顺序,尝试使用'Arial'
字体。如果'Arial'
不可用,它会尝试使用'Liberation Sans'
。
rc参数汇总:
-
字体相关配置:
font.sans-serif
:指定无衬线字体列表,用于显示中文等。font.family
:设置字体家族,如'sans-serif'
、'serif'
等。font.style
:设置字体风格,如'normal'
、'italic'
、'oblique'
。axes.unicode_minus
:设置为False
以正常显示负号。
-
线条样式:
lines.linewidth
:设置线宽。lines.linestyle
:设置线型,如'-'
、'--'
等。lines.color
:设置线条颜色。lines.marker
:设置线条标记样式。lines.markersize
:设置标记大小。
-
坐标轴配置:
xtick.labelsize
:设置x轴标签字体大小。ytick.labelsize
:设置y轴标签字体大小。xtick.major.size
:设置x轴主要刻度的大小。ytick.major.size
:设置y轴主要刻度的大小。
-
图形和子图设置:
figure.figsize
:设置图形的默认大小,如(8, 6)
表示宽度和高度。figure.dpi
:设置图形的分辨率,如100
表示每英寸点数。
-
图例配置:
legend.fontsize
:设置图例字体大小。
-
网格配置:
grid.color
:设置网格线颜色。grid.linestyle
:设置网格线型。grid.linewidth
:设置网格线宽。
-
保存图形配置:
savefig.dpi
:设置保存图形时的分辨率。