NumPy Matplotlib

Matplotlib ist eine Plotting-Bibliothek für Python. Sie kann mit NumPy verwendet werden und bietet eine effektive Open-Source-Alternative zu MatLab. Sie kann auch mit GUI-Toolkits wie PyQt und wxPython verwendet werden.

Installation mit pip3:

pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

Linux-Systeme können auch den Linux-Paketmanager zur Installation verwenden:

  • Debian / Ubuntu:

    sudo apt-get install python-matplotlib
  • Fedora / Redhat:

    sudo yum install python-matplotlib

Nach der Installation können Sie den Befehlpython -m pip listverwenden, um zu prüfen, ob das matplotlib-Modul installiert ist.

$ pip3 list | grep matplotlib
matplotlib        3.3.0  

Beispiel

Beispiel

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()

Im obigen Beispiel erzeugt 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 pyplot-Untermoduls des matplotlib-Pakets gezeichnet.

Das Diagramm wird durch die Funktion show() angezeigt.

Chinesisch in Diagrammen anzeigen

Matplotlib unterstützt standardmäßig kein Chinesisch. Wir können die folgenden einfachen Methoden verwenden, um dies zu lösen.

Hier verwenden wir Source Han Sans, eine von Adobe und Google veröffentlichte 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 daraus 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 diese Datei in das Verzeichnis der aktuell ausgeführten Codedatei legen:

Legen Sie die Datei SourceHanSansSC-Bold.otf in das Verzeichnis der aktuell ausgeführten Codedatei:

Beispiel

import numpy as np from matplotlib import pyplot as plt import matplotlib # fname ist der Pfad der heruntergeladenen Schriftdatei; beachten Sie den Pfad der Schriftart SourceHanSansSC-Bold.otf zhfont1 = matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf") x = np.arange(1,11) y = 2 * x + 5 plt.title("Beispiel-Tutorial - Test", fontproperties=zhfont1) # fontproperties legt die chinesische Anzeige fest, fontsize legt die Schriftgröße fest plt.xlabel("x-Achse", fontproperties=zhfont1) plt.ylabel("y-Achse", fontproperties=zhfont1) plt.plot(x,y) plt.show()

Das Ausführen der Ausgabe führt zu der folgenden Abbildung:

Darüber hinaus können wir auch Systemschriften 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)

Geben Sie alle registrierten Namen in der ttflist Ihres font_manager aus, suchen Sie eine chinesische Schriftart wie STFangsong (Fangsong) und fügen Sie dann den folgenden Code hinzu:

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

Als Alternative zu Liniendiagrammen können diskrete Werte angezeigt werden, indem eine Formatzeichenfolge zur Funktion plot() hinzugefügt wird. Die folgenden Formatzeichen können verwendet werden.

Zeichen Beschreibung
'-' Durchgezogener Linienstil
'--' Gestrichelter Linienstil
'-.' Strichpunkt-Linienstil
':' Gepunkteter Linienstil
'.' Punktmarker
',' Pixelmarker
'o' Kreismarker
'v' Umgekehrter Dreiecksmarker
'^' Aufwärtsgerichteter Dreiecksmarker
'<' Linksgerichteter Dreiecksmarker
'>' Rechtsgerichteter Dreiecksmarker
'1' Abwärtspfeil-Marker
'2' Aufwärtspfeil-Marker
'3' Linkspfeil-Marker
'4' Rechtspfeil-Marker
's' Quadrat-Marker
'p' Fünfeck-Marker
'*' Stern-Marker
'h' Sechseck-Marker 1
'H' Sechseck-Marker 2
'+' Plus-Marker
'x' X-Marker
'D' Diamant-Marker
'd' Dünner Diamant-Marker
'|' Markierung für vertikale Linie
'_' Markierung für horizontale Linie

Die folgenden sind Farbabkürzungen:

Zeichen Farbe
'b' Blau
'g' Grün
'r' Rot
'c' Cyan
'm' Magenta
'y' Yellow
'k' Schwarz
'w' White

Um Kreise zur Darstellung von Punkten anzuzeigen, anstelle der Linien im obigen Beispiel, verwenden Sie 'ob' als Formatzeichenfolge in der Funktion plot().

Beispiel

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 Ausführen der Ausgabe führt zu der folgenden Abbildung:

Sinuswelle zeichnen

Das folgende Beispiel verwendet matplotlib, um ein Sinuswellendiagramm zu erzeugen.

Beispiel

import numpy as np import matplotlib.pyplot as plt # Berechne die x- und y-Koordinaten für Punkte auf der Sinuskurve x = np.arange(0, 3 * np.pi, 0.1) y = np.sin(x) plt.title("Sinuswellenform") # Verwende matplotlib, um die Punkte zu plotten plt.plot(x, y) plt.show()

Das Ausführen der Ausgabe führt zu der folgenden Abbildung:

subplot()

Die Funktion subplot() ermöglicht es Ihnen, verschiedene Dinge in derselben Abbildung darzustellen.

Das folgende Beispiel zeichnet Sinus- und Kosinuswerte:

Beispiel

import numpy as np import matplotlib.pyplot as plt # Berechne die x- und y-Koordinaten für Punkte auf den Sinus- und Kosinuskurven x = np.arange(0, 3 * np.pi, 0.1) y_sin = np.sin(x) y_cos = np.cos(x) # Richte das Subplot-Raster ein, Höhe 2, Breite 1 # Aktiviere den ersten Subplot plt.subplot(2, 1, 1) # Zeichne den ersten Graphen plt.plot(x, y_sin) plt.title('Sinus') # Aktiviere den zweiten Subplot und zeichne den zweiten Graphen plt.subplot(2, 1, 2) plt.plot(x, y_cos) plt.title('Kosinus') # Zeige die Graphen an plt.show()

Das Ausführen der Ausgabe führt zu der folgenden Abbildung:

bar()

Das pyplot-Submodul stellt die Funktion bar() bereit, um Balkendiagramme zu erzeugen.

Das folgende Beispiel erzeugt Balkendiagramme für zwei Sätze von x- und y-Arrays.

Beispiel

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, align = 'center') plt.bar(x2, y2, color = 'g', align = 'center') plt.title('Balkendiagramm') plt.ylabel('Y-Achse') plt.xlabel('X-Achse') plt.show()

Das Ausführen der Ausgabe führt zu der folgenden Abbildung:

numpy.histogram()

Die Funktion numpy.histogram() ist eine grafische Darstellung der Häufigkeitsverteilung von Daten. Rechtecke mit gleichen horizontalen Abmessungen entsprechen Klassenintervallen, genannt Bins, und die variable Höhe entspricht der Häufigkeit.

Die Funktion numpy.histogram() nimmt das Eingabe-Array und Bins als zwei Parameter entgegen. Aufeinanderfolgende Elemente im Bins-Array werden als Grenzen jedes Bins verwendet.

Beispiel

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)

Das Ausgabeergebnis ist:

[3 4 5 2 1]
[  0  20  40  60  80 100]

plt()

Matplotlib kann die numerische Darstellung eines Histogramms in ein Diagramm umwandeln. Die Funktion plt() des pyplot-Submoduls nimmt ein Array, das die Daten enthält, und ein Bins-Array als Parameter und wandelt es in ein Histogramm um.

Beispiel

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()

Das Ausführen der Ausgabe führt zu der folgenden Abbildung:

Weitere Referenzinhalte zu Matplotlib:

Andere Erweiterungen