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
廣告