Matplotlib chinesische Darstellung
Matplotlib ist für die chinesische Anzeige nicht besonders benutzerfreundlich. Um Chinesisch in Matplotlib anzuzeigen, können wir zwei Methoden verwenden:
- Legen Sie die Schriftartparameter von Matplotlib fest.
- Laden Sie eine Schriftartenbibliothek herunter, die Chinesisch unterstützt, und verwenden Sie diese.
Ohne Festlegung einer Schriftart ist die Standardanzeige wie folgt, und der chinesische Teil kann nicht normal angezeigt werden:

Matplotlib-Schriftartparameter
Wir können zuerst die Liste der Schriftartenbibliotheken des Systems abrufen:
Beispiel
import matplotlib
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
for i in a:
print(i)
Das Ausgabeergebnis ist ähnlich wie das folgende:
... Heiti TC Helvetica Helvetica Neue Herculanum Hiragino Maru Gothic Pro Hiragino Mincho ProN Hiragino Sans Hiragino Sans GB Hoefler Text ...
Der obige Code gibt alle registrierten Namen in der ttflist von font_manager aus. Suchen Sie eine chinesische Schriftart wie STFangsong (FangSong) oder Heiti TC (Heiti) und fügen Sie dann den folgenden Code hinzu.
Für Windows:
plt.rcParams['font.family'] = 'SimHei' # 替换为你选择的字体
Wählen Sie unter Windows SimHei (Heiti) oder eine andere chinesische Schriftart aus und legen Sie sie als Standardschriftart für Matplotlib fest.
Für Linux:
plt.rcParams['font.family'] = 'WenQuanYi Micro Hei' # 替换为你选择的字体
Verwenden Sie unter Linux den Befehl fc-list, um installierte Schriftarten anzuzeigen, wählen Sie eine chinesische Schriftart aus und legen Sie sie als Standardschriftart für Matplotlib fest.
Für macOS:
plt.rcParams['font.family'] = 'Heiti TC' # 替换为你选择的字体
Durch Festlegen vonplt.rcParams['font.family']weisen Sie Matplotlib an, die ausgewählte Schriftart zum Rendern von Text zu verwenden, wodurch Chinesisch im Diagramm korrekt dargestellt wird.
Auf diese Weise können Sie die vom System unterstützten chinesischen Schriftarten in Matplotlib-Diagrammen verwenden.
Beispiel
plt.rcParams['font.family'] = 'Heiti TC' # Durch die von Ihnen gewählte Schriftart ersetzen
# Daten erstellen
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# Liniendiagramm zeichnen
plt.plot(x, y)
# Titel und Beschriftungen hinzufügen
plt.title('Liniendiagramm-Beispiel')
plt.xlabel('X-Achse')
plt.ylabel('Y-Achse')
# Zeige das Diagramm an
plt.show()
Dann kann Chinesisch normal angezeigt werden, wie unten gezeigt:

Universelle Methode für verschiedene Plattformsysteme:
# -------------------------- 设置中文字体 start --------------------------
plt.rcParams['font.sans-serif'] = [
# Windows 优先
'SimHei', 'Microsoft YaHei',
# macOS 优先
'PingFang SC', 'Heiti TC',
# Linux 优先
'WenQuanYi Micro Hei', 'DejaVu Sans'
]
# 修复负号显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False
# -------------------------- 设置中文字体 end --------------------------
Beispiel
import matplotlib.pyplot as plt
# -------------------------- Chinesische Schriftart festlegen Start --------------------------
plt.rcParams['font.sans-serif'] = [
# Windows zuerst
'SimHei', 'Microsoft YaHei',
# macOS zuerst
'PingFang SC', 'Heiti TC',
# Linux zuerst
'WenQuanYi Micro Hei', 'DejaVu Sans'
]
# Behebe das Problem, dass das Minuszeichen als Quadrat angezeigt wird
plt.rcParams['axes.unicode_minus'] = False
# -------------------------- Chinesische Schriftart festlegen Ende --------------------------
# Simulierte Daten generieren: etwas zufälliges Rauschen auf die Sinuskurve addieren
np.random.seed(42)
X = np.linspace(0, 10, 20)
y_true = np.sin(X) # Das wahre zugrunde liegende Muster (das wir nicht kennen)
y_noise = np.random.randn(20) * 0.3 # Zufälliges Rauschen
y = y_true + y_noise # Die Daten, die wir tatsächlich beobachten
plt.scatter(X, y, label='Beobachtete Daten (mit Rauschen)', color='blue', alpha=0.6)
plt.plot(X, y_true, label='Wahres Muster (y=sin(x))', color='green', linewidth=2)
plt.xlabel('X')
plt.ylabel('y')
plt.title('Daten und zugrunde liegendes Muster')
plt.legend()
plt.grid(True)
plt.show()
Unser Ziel ist es, eine Kurve (ein Modell) zu finden, die das Muster am besten beschreibt, das sich in diesen blauen Streupunkten (Daten) widerspiegelt.
Das Ausmaß, in dem das Modell die Daten beschreibt, wird alsAnpassung bezeichnet。
Verwenden einer Schriftbibliothek
Matplotlib unterstützt standardmäßig kein Chinesisch. Wir können die folgende einfache Methode verwenden, um dies zu lösen.
Hier verwenden wir Source Han Sans, eine von Adobe und Google herausgebrachte Open-Source-Schriftart.
Offizielle Website:https://source.typekit.com/source-han-serif/cn/
GitHub-Adresse:https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese
Nach dem Öffnen des Links wählen Sie einfach eine darin aus:

Sie können auch von der Cloud-Festplatte herunterladen:https://pan.baidu.com/s/10-w1JbXZSnx3Tm6uGpPGOw, Extraktionscode:yxqu。
Sie können eine OTF-Schriftart wie SourceHanSansSC-Bold.otf herunterladen und die Datei im selben Verzeichnis wie die aktuell ausgeführte Codedatei ablegen:
Legen Sie die Datei SourceHanSansSC-Bold.otf im selben Verzeichnis wie die aktuell ausgeführte Codedatei ab:
Beispiel
Die Ausgabe nach der Ausführung ist wie unten gezeigt:
