Verwendung von Matplotlib zum Zeichnen von Diagrammen und Graphen

Verwendung von Matplotlib zum Zeichnen von Diagrammen und Graphen

  • Künstliche Intelligenz
6 Minuten Lesezeit Aktualisiert Aug 30, 2019

Auf einen Blick: Die Nutzung von Matplotlib ermöglicht die Erstellung verschiedener Diagramme und Diagramme für eine effektive Datenvisualisierung in Umgebungen wie Zeppelin oder Jupyter. Es unterstützt eine breite Palette von Diagrammtypen, darunter Liniendiagramme, Streudiagramme, Histogramme und Kreisdiagramme, sodass Nutzer Daten effizient visualisieren können.

  • Matplotlib enthält Funktionen für Annotationen und mehrere Diagrammtypen.
  • Eine grafische Benutzeroberfläche ist notwendig, um Diagramme anzuzeigen, wie sie von Tools wie Zeppelin und Jupyter bereitgestellt wird.

Wenn du mit Big Data arbeitest, musst du lernen, wie man Diagramme erstellt, die auch als Diagramme bekannt sind. Diagramme sind ein Thema, das äußerst kompliziert sein kann, daher beginnen wir hier mit einfachen Beispielen.

Diagramme benötigen eine grafische Umgebung

Du kannst keine Diagramme aus einem Python-Programm zeichnen, das in einer zeichenbasierten Umgebung wie einer Bash Shell läuft. Stattdessen brauchst du eine grafische Umgebung.

Die meisten Data Scientists verwenden Matplotlib im Browser, da ein Browser Grafiken anzeigen kann. Der beste Weg ist Zeppelin oder Jupyter, da beide Code-Interpreter und Werkzeuge sind, die Grafiken anzeigen können.

Matplotlin wurde ursprünglich als grafisches Frontend für ein Tool namens Matlab geschrieben. Matlab wird hauptsächlich von Ingenieuren und Data Scientists verwendet, funktioniert aber auch gut mit Python.

Mit Zeppelin

Wir haben Zeppelin hier schon einmal besprochen. Zeppelin ermöglicht es, Programme in verschiedenen Programmiersprachen auf einer Webseite auszuführen. Es unterstützt Spark, Python, Angular, MarkDown, Livy, eine Bash-Shell und andere. (Da es Bash-Shells unterstützt, möchte man es nicht auf einer öffentlich zugänglichen Webseite platzieren, ohne ein Passwort hinzuzufügen.) Zeppelin verfügt ebenfalls über eine gewisse grafische Fähigkeit, aber um fortschrittlichere Diagramme zu erstellen, benötigt man ein fortschrittliches Diagrammprodukt wie Matplotlib.

Hier zeigen wir, wie man Matplot verwendet, um Linien- und Streudiagramme sowie Histogramme zu zeichnen. Zuerst musst du Zeppelin installieren, was so einfach ist wie das Herunterladen und Entpacken. Auf dem Mac starte den Daemon mit zeppelin-daemon.sh Start.

Liniendiagramme

Ein Liniendiagramm zeichnet eine Achse gegen eine andere, wie zum Beispiel die Familie xy-Achse, die in der Algebra der Oberstufe verwendet wird.

Zeppelin arbeitet mit Arrays. Im untenstehenden Beispiel verwenden wir die Numpy-Funktion np.arange(1,5,0.25), um ein Array mit gleichmäßig verteilten Intervallen von 0,25 zu erzeugen. Dann ist es so einfach, plot aufzurufen: plt.plot(y, 'bs'), wobei bs blaue Quadrate bedeutet. Wenn man ihm nur ein Array gibt, wird angenommen, dass dies Werte für die y-Achse sind, sodass automatisch die x-Achse berechnet wird.

Streudiagramme

Histogramm

    %python
import matplotlib.pyplot as plt
import numpy as np
 
y = np.arange(1,5,0.25)
 
plt.plot(y, 'bs')

Hier ist die resultierende Grafik.

Fügen wir nun Annotationen zur Linie hinzu. Denken Sie daran, dass Matplotlib die x-Werte automatisch basierend auf den y-Werten berechnet. Die Steigung (m) der Geraden oben, y = mx +1, beträgt ungefähr 0,29, allein durch visuelles Betrachten und Schätzen. Also zeichnen wir diese (x,y)-Koordinaten auf und benennen jeden Punkt.

Setzen wir das Inkrementer auf 1 und nicht auf 0,25, um eine Überfüllung des Diagramms zu vermeiden.

Im untenstehenden Code gibt die Python-Zip (A.B) -Funktion Tupel ((x[0],y[0]) .... ) aus den Arrays A und B zurück. Wir tun dies, weil wir jede x,y-Koordinate in Form des Tupels (x,y) benötigen. Wir verwenden das Array A und B, um die x,y-Koordinaten zu enthalten.

    %python
import matplotlib.pyplot as plt
import numpy as np
 
y = np.arange(0,5,1)

A = []
B = []

for x in range(1, len(y)):
    y= (0.29*x)
    A.append(x)
    B.append(y)

for xy in zip(A,B):
    plt.plot( xy[0],xy[1],'gs')
    plt.annotate('(%s, %s)' % xy, xy=xy, textcoords='data')

Hier ist dieselbe Zeile, wobei jede (x,y)-Koordinate als Annotation auf der Zeile gedruckt ist.

Streudiagramme zeichnen Punkte und keine Linien auf.

    %python
import matplotlib.pyplot as plt
import numpy as np

n = 10
x = np.random.rand(n)
y = np.random.rand(n)
 
plt.scatter(x,y)

Da wir zufällige ganze Zahlen verwendet haben, sind die Punkte überall verteilt. Wir haben die rand()-Funktion und nicht randint verwendet, sodass sie zufällige Gleitkommazahlen <= 1 erzeugt hat.

In einem Histogramm ist der vertikale Balken der Prozentsatz aller Punkte für jeden Wert, auch Frequenzverteilung genannt. Hier waren also 17,5 % der Zufallszahlen 3. Die Zahl 100 wird als Größe des Arrays bezeichnet. Hier haben wir ein 1x100-Array, das gleichwertig als Vektor bezeichnet wird.

Wenn wir zum Beispiel x = np.random.randint(low = 0, high = 15, size=[4,4]) verwendet hätten, würde eine 4x4-Matrix aus Zufallszahlen entstehen.

    %python
import matplotlib.pyplot as plt
import numpy as np
 

x = np.random.randint(low = 0, high = 15, size=100) 



plt.figure()
plt.hist(x)

plt.show()

Dies zeigt die Frequenzverteilung. Mit anderen Worten, wir haben ihm gesagt, 100 zufällige ganze Zahlen zwischen 0 und 15 zu erzeugen.

Wir haben zuvor erklärt, wie man ein gestapeltes Balkendiagramm erstellt.

Tortendiagramm

Unten erstellen wir ein Tortendiagramm.  Die Summe der Prozentsätze jeder Scheibe summiert sich zu 100 %, genau wie ein Histogramm.  Jeder Scheibe xi (genannt Keil, mein Matplot-Lib) ist xi / Summe (x1 ... xn) Prozentsatz des gesamten Kuchens.

Unten geben wir ihm die Labels. Diese müssen in derselben Reihenfolge wie die Daten stehen,  da Matplotlib das nicht automatisch herausfinden kann.  Mit anderen Worten: Entfernen Sie sie aus der Reihenfolge, und Ihre Labels sind nicht logisch.

Wir bieten auch Autopct an, um den Prozentsatz in jedem Keil zu zeichnen.  Wir hätten dort auch eine eigene Funktion platzieren können.

    %python
import matplotlib.pyplot as plt
import numpy as np

 
x = [100, 200, 300, 400, 500]
labels = ['first', 'second', 'third', 'fourth', 'fifth']

plt.pie(x,labels=labels,autopct='%1.1f%%')

plt.show()

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus Künstliche Intelligenz

Abonnieren Sie The Brief

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Danke

Sie haben The Brief abonniert
Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.