English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
pip3 Installation:
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
Linux-Systeme können auch Linux-Paketmanager verwenden, um zu installieren:
Debian / Ubuntu:
sudo apt-get install python-matplotlib
Fedora / Redhat:sudo yum install python-matplotlib
Nach der Installation können Sie python -m pip list Befehl, um zu überprüfen, ob das Modul matplotlib installiert ist.
$ pip3 list | grep matplotlib matplotlib 3.3.0
import numpy as np from matplotlib import pyplot as plt x = np.arange(1,11) y = 2 * x + 5 plt.title("Matplotlib-Demo") plt.xlabel("X-Achsenbeschriftung") plt.ylabel("Y-Achsenbeschriftung") plt.plot(x, y) plt.show()
In diesem Beispiel erstellt die Funktion np.arange() Werte auf der x-Achse. Die entsprechenden Werte auf der y-Achse werden in einem anderen Array-Objekt y gespeichert. Diese Werte werden mit der Funktion plot() des Submoduls pyplot des Matplotlib-Pakets gezeichnet.
Das Diagramm wird durch die Funktion show() angezeigt.
Matplotlib unterstützt standardmäßig keine chinesischen Zeichen, wir können die folgenden einfachen Methoden verwenden, um dies zu lösen.
Hier verwenden wir Source Han Sans, eine von Adobe und Google herausgegebene Open-Source-Schriftart.
Webseite: https://source.typekit.com/source-han-serif/cn/
GitHub-Adresse: https://github.com/adobe-fonts/source-han-sans/tree/release/OTF/SimplifiedChinese
Öffnen Sie den Link und wählen Sie einen aus:
Sie können eine OTF-Schriftart herunterladen, wie z.B. SourceHanSansSC-Bold.otf,leg die Datei im aktuellen Ausführungsdateifolder ab:
SourceHanSansSC-Bold.otf Datei im aktuellen Ausführungsdateifolder ablegen:
import numpy as np from matplotlib import pyplot as plt import matplotlib # fname ist der Pfad zur heruntergeladenen Zeichensatzbibliothek, beachte SourceHanSansSC-Bold.otf Pfad der Schriftart zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf") x = np.arange(1,11) y = 2 * x + 5 plt.title("Stehendes Gut - Test", fontproperties=zhfont1) # fontproperties setzt die chinesische Anzeige, fontsize setzt die Zeichengröße plt.xlabel("x-Achse", fontproperties=zhfont1) plt.ylabel("y-Achse", fontproperties=zhfont1) plt.plot(x,y) plt.show()
Außerdem können wir auch System-Schriften verwenden:
from matplotlib import pyplot as plt import matplotlib a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist]) for i in a: print(i)
Drucke alle Namen in deiner font_manager ttflist aus und finde eine geschätzte chinesische Schriftart wie: STFangsong (Fangsong), dann füge folgenden Code hinzu:
plt.rcParams['font.family']=['STFangsong']
Als Ersatz für lineare Diagramme können diskrete Werte angezeigt werden, indem ein Formatierungsstring an die Funktion plot() hinzugefügt wird. Die folgenden Formatierungszeichen können verwendet werden.
Zeichen | Beschreibung |
'-' | durchgezogene Linie |
'--' | Bindestrich |
'-.' | Strichpunkt |
':' | Strich |
'.' | Punkt |
',' | Pixel |
'o' | Kreis |
'v' | Umgekehrter Dreieck |
^' | Rechter Dreieck |
'<' | Linker Dreieck |
'>' | Rechter Dreieck |
'1' | Unterer Pfeil |
'2' | Oberer Pfeil |
'3' | Linker Pfeil |
'4' | Rechter Pfeil |
's' | Quadrat |
'p' | Pentagon |
'*' | Stern |
'h' | Sechseck 1 |
'H' | Sechseck 2 |
'+' | Plus |
'x' | X |
'D' | Rhombus |
'd' | Schmale Rhombus |
'|' | Vertikale Linie |
'_' | Horizontale Linie |
Hier sind die Abkürzungen für Farben:
Zeichen | Farbe |
'b' | Blau |
'g' | Grün |
'r' | Rot |
'c' | Cyan |
'm' | Magenta |
'y' | Gelb |
'k' | Schwarz |
'w' | Weiß |
Um einen Kreis anstatt der Linie aus dem obigen Beispiel zu darstellen, verwenden Sie "ob" als Formatzeichen im plot() -Funktion.
import numpy as np from matplotlib import pyplot as plt x = np.arange(1,11) y = 2 * x + 5 plt.title("Matplotlib-Demo") plt.xlabel("X-Achsenbeschriftung") plt.ylabel("Y-Achsenbeschriftung") plt.plot(x, y, "ob") plt.show()
执行输出结果如下所示:
Das folgende Beispiel verwendet matplotlib, um ein Sinuswellendiagramm zu erzeugen.
import numpy as np import matplotlib.pyplot as plt # Berechnen Sie die x- und y-Koordinaten der Punkte auf der Sinuskurve x = np.arange(0, 3 * np.pi, 0.1) y = np.sin(x) plt.title("sine waveform") # Verwenden Sie matplotlib, um Punkte zu zeichnen plt.plot(x, y) plt.show()
执行输出结果如下所示:
Die Funktion subplot() ermöglicht es Ihnen, verschiedene Dinge in einem Diagramm zu zeichnen.
Das folgende Beispiel zeichnet Sinus- und Kosinuswerte:
import numpy as np import matplotlib.pyplot as plt # Berechnen Sie die x- und y-Koordinaten der Punkte auf den Kurven der Sinus- und Kosinusfunktion x = np.arange(0, 3 * np.pi, 0.1) y_sin = np.sin(x) y_kos = np.cos(x) # Erstellen Sie ein subplot-Netzwerk, Höhe von 2, Breite von 1 # Den ersten subplot aktivieren plt.subplot(2, 1, 1) # Das erste Bild zeichnen plt.plot(x, y_sin) plt.title('Sinus') # Der zweite subplot aktivieren und das zweite Bild zeichnen plt.subplot(2, 1, 2) plt.plot(x, y_kos) plt.title('Kosinus') # Bild anzeigen plt.show()
执行输出结果如下所示:
Der Untermodul pyplot bietet die Funktion bar() zum Erstellen von Balkendiagrammen.
Das folgende Beispiel generiert zwei x- und y-Werte-Arrays für ein Balkendiagramm.
from matplotlib import pyplot as plt x = [5,8,10] y = [12,16,6] x2 = [6,9,11] y2 = [6,15,7] plt.bar(x, y, Ausrichtung = 'mitte') plt.bar(x2, y2, Farbe = 'g', Ausrichtung = 'mitte') plt.title('Balkendiagramm') plt.ylabel('Y-Achse') plt.xlabel('X-Achse') plt.show()
执行输出结果如下所示:
numpy.histogram() 函数是数据的频率分布的图形表示。水平尺寸相等的矩形对应于类间隔,称为 bin,变量 height 对应于频率。
numpy.histogram() 函数将输入数组和 bin 作为两个参数。bin 数组中的连续元素用作每个 bin 的边界。
import numpy as np a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]) np.histogram(a, bins = [0,20,40,60,80,100]) hist, bins = np.histogram(a, bins = [0,20,40,60,80,100]) print(hist) print(bins)
输出结果为:
[3 4 5 2 1] [ 0 20 40 60 80 100]
Matplotlib 可以将直方图的数字表示转换为图形。pyplot 子模块的 plt() 函数将包含数据和 bin 数组的数组作为参数,并转换为直方图。
from matplotlib import pyplot as plt import numpy as np a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]) plt.hist(a, bins = [0,20,40,60,80,100]) plt.title("histogram") plt.show()
执行输出结果如下所示:
Matplotlib 更多参考资料: