Matplotlib - 全局设置字体属性



在 Matplotlib 库中全局设置字体属性涉及使用 plt.rcParams 方法配置整个绘图的默认字体设置。当我们希望将一致的字体样式、大小或字体系列应用于可视化中的所有文本元素而无需为每个组件分别指定它们时,这非常有用。

需要注意的是,我们可以根据自己的偏好和希望在绘图中实现的视觉样式来调整这些设置。我们可以调整值以匹配我们所需的字体样式、大小和系列,以确保可视化的一致性和美观性。

以下是我们可以使用 plt.rcParams 方法进行的不同设置。

plt.rcParams['font.family'] = font_name

这将设置文本元素的默认字体系列,例如 'sans-serif'。我们可以将 font_name 替换为可用的字体系列,例如 'serif'、'monospace' 或特定的字体名称。

示例

在这个示例中,我们尝试使用 plt.rcParams['font.family'] 将字体系列设置为 'sans-serif'

import matplotlib.pyplot as plt
# Set font properties globally
plt.rcParams['font.family'] = 'sans-serif'
# Create a plot
plt.plot([1, 2, 3], [4, 5, 6])
plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.title('Font Family setting')
plt.show()

输出

Font Family

plt.rcParams['font.size'] = font_size

我们可以根据需要以数值形式指定文本元素的默认字体大小。这确保所有文本元素都使用此字体大小,除非为特定组件覆盖。

示例

在这个示例中,我们将字体大小指定为 8 点到 plt.rcParams['font.size'],以便在整个绘图中全局显示字体大小。

import matplotlib.pyplot as plt
# Set font properties globally
plt.rcParams['font.size'] = 8
# Create a plot
plt.plot([1, 2, 3], [4, 5, 6])
plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.title('Font Size setting')
plt.show()

输出

Font Size

plt.rcParams['font.style'] = 'fontstyle'

我们可以根据自己的兴趣定义字体样式,例如斜体等,到 plt.rcParams['font.style']。这将把定义的外观应用于整个绘图中的文本元素。

示例

在这个示例中,我们将字体样式指定为 italicplt.rcParams['font.style']

import matplotlib.pyplot as plt
# Set font properties globally
plt.rcParams['font.style'] = 'italic'
# Create a plot
plt.plot([1, 2, 3], [4, 5, 6])
plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.title('Font Style setting')
plt.show()

输出

Font Style

plt.rcParams['font.weight'] = font_weight

通过使用它,我们可以设置字体粗细,例如 'bold' 等。这使得文本元素中的字符根据用户的要求以定义的样式出现。

示例

在这个示例中,我们将字体粗细指定为粗体到 plt.rcParams['font.weight']

import matplotlib.pyplot as plt
# Set font properties globally
plt.rcParams['font.weight'] = 'bold'
# Create a plot
plt.plot([1, 2, 3], [4, 5, 6])
plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.title('Font weight setting')
plt.show()

输出

Font Weight

注意 - 通过使用 plt.rcParams 全局设置这些参数,我们可以确保这些默认字体属性应用于 Matplotlib 绘图中的所有文本元素。当我们创建标签、标题或其他文本组件时,它们将继承这些全局设置,除非我们在本地指定不同的属性。

更改 Matplotlib 颜色条标签的字体属性

在这个示例中,我们正在更改 matplotlib 颜色条标签的字体属性。

示例

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x, y = np.mgrid[-1:1:100j, -1:1:100j]
z = (x + y) * np.exp(-5.0 * (x ** 2 + y ** 2))
plt.imshow(z, extent=[-1, 1, -1, 1])
cb = plt.colorbar(label='my color bar label')
plt.show()

输出

Color Bar

设置绘图画布的大小

在这个示例中,我们正在设置 matplotlib 中绘图画布的大小。

示例

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(-2, 2, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()

输出

Canvas

使用 Matplotlib 自动调整 Seaborn 热力图中的字体大小

在这里,我们使用 Matplotlib 库自动调整 seaborn 热力图中的字体大小。

示例

import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
import pandas as pd
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
d = {
   'y=1/x': [1 / i for i in range(1, 10)],
   'y=x': [i for i in range(1, 10)],
   'y=x^2': [i * i for i in range(1, 10)],
   'y=x^3': [i * i * i for i in range(1, 10)]
}
df = pd.DataFrame(d)
ax = sns.heatmap(df, vmax=1)
plt.xlabel('Mathematical Expression', fontsize=16)
plt.show()

输出

Canvas

设置 Matplotlib 坐标轴图例的字体大小

在这个示例中,我们正在设置 matplotlib 坐标轴图例的字体大小

示例

import numpy as np
from matplotlib import pyplot as plt
import matplotlib
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(1, 10, 50)
y = np.sin(x)
plt.plot(x, y, c="red", lw=7, label="y=sin(x)")
plt.title("Sine Curve")
matplotlib.rcParams['legend.fontsize'] = 20
plt.legend(loc=1)
plt.show()

输出

Legend size

修改 Matplotlib-venn 中的字体大小

要使用 Matplotlib-venn,首先我们必须使用以下代码安装包。如果之前已安装,我们可以直接导入。

pip install matplotlib-venn

示例

在这个示例中,我们使用 set_fontsize() 方法修改 Matplotlib-venn 中的字体大小。

from matplotlib import pyplot as plt
from matplotlib_venn import venn3
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
set1 = {'a', 'b', 'c', 'd'}
set2 = {'a', 'b', 'e'}
set3 = {'a', 'd', 'f'}
out = venn3([set1, set2, set3], ('Set1', 'Set2', 'Set3'))
for text in out.set_labels:
   text.set_fontsize(25)
for text in out.subset_labels:
   text.set_fontsize(12)
plt.show()

输出

Matplotlib-venn

更改 xticks 字体大小

要更改 matplotlib 绘图中 xticks 的字体大小,我们可以使用 fontsize 参数。

示例

from matplotlib import pyplot as plt
import numpy as np
# Set the figure size
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# x and y data points
x = np.linspace(-5, 5, 100)
y = np.sin(x)
plt.plot(x, y)
# Set the font size of xticks
plt.xticks(fontsize=25)
# Display the plot
plt.show()

输出

Xticks size
广告