Matplotlib-Streu- und Liniendiagramme erklärt

Matplotlib-Streu- und Liniendiagramme erklärt

  • Orchestrierung
6 Minuten Lesezeit Aktualisiert Sep 12, 2019

Auf einen Blick: Matplotlib ist eine leistungsstarke Bibliothek zur Erstellung von Streu- und Liniendiagrammen in Python und legt großen Wert auf einfache Installation und Anpassbarkeit. Der Leitfaden veranschaulicht wichtige Plottechniken mit NumPy und Pandas, sodass Nutzer Daten effektiv visualisieren können.

  • Installiere Zeppelin für das grafische Plotten.
  • Verwenden Sie Plot() und Scatter() für verschiedene Stile.
  • Passe die Plots mit Farben, Größen und Anmerkungen an.

In diesem Artikel erklären wir, wie man mit Matplotlib-Streu- und Liniendiagrammen anfängt.

Zeppelin installieren

Laden Sie zuerst Zeppelin herunter und installieren Sie ihn, einen grafischen Python-Interpreter, den wir bereits besprochen haben. Schließlich kann man nicht von der Python-Shell aus graphen, da das keine grafische Umgebung ist.

Starte Zeppelin. Wenn du eine virtuelle Python-Umgebung verwendest, musst du diese Umgebung (z. B. py34/bin/activate) sourcen, so wie du Python als normaler Nutzer nutzt. So werden NumPy und Matplotlib importiert, die du mit pip installieren musst.

Erste Handlung

Hier ist das einfachste Diagramm: x gegen y. Die beiden Arrays müssen gleich groß sein, da die dargestellten Zahlen paarweise vom Array genommen wurden: (1,2), (2,2), (3,3), (4,4).

Wir verwenden plot(), wir hätten auch scatter() verwenden können. Sie sind fast gleich. Das liegt daran, dass plot() entweder eine Linie zeichnen oder eine Scatterplot bilden kann. Die Unterschiede werden unten erklärt.

Ergebnisse in:

    import numpy as np
import matplotlib.pyplot as plt

x = [1,2,3,4]
y = [1,2,3,4]
plt.plot(x,y)
plt.show()

Ergebnisse in:

Man kann beliebig viele Argumente in die Plot()-Funktion eingeben. Das Format ist plt.plot(x,y,colorOptions, *args, **kargs). *args und **kargs ermöglichen es, Werte an andere Objekte weiterzugeben, was wir unten illustrieren.

Wenn man nur einen Wert von Plot() angibt, wird angenommen, dass die y-Koordinate ist. Wenn man Striche ("--") hinter den Farbnamen setzt, zieht er eine Linie zwischen jedem Punkt, d. h. bildet ein Liniendiagramm, anstatt Punkte zu zeichnen, also ein Streudiagramm. Lässt man die Striche weg, wird die Farbe zum Punktmarkt, der ein Dreieck ("v"), ein Kreis ("o") usw. sein kann.

Hier verwenden wir np.array(), um ein NumPy-Array zu erstellen. Selbst ohne dies konvertiert Matplotlib Arrays intern in NumPy-Arrays. NumPy ist Ihre beste Wahl für Data-Science-Arbeit wegen seines umfangreichen Funktionsumfangs.

Verwenden Sie NumPy-Arrays

Hier geben wir ihm zwei Sätze von x,y-Paaren, jedes mit seiner eigenen Farbe.

    import numpy as np
import matplotlib.pyplot as plt

x = np.array([1,2,3,4])

plt.plot(x,x**2,'g--', x, x**3, 'o--')

Wir hätten dieselben zwei Liniendiagramme oben zeichnen können, indem wir die Plot()-Funktion zweimal aufgerufen haben, um zu zeigen, dass wir beliebig viele Diagramme auf die Leinwand malen können.

    import numpy as np
import matplotlib.pyplot as plt

x = np.array([1,2,3,4])

plt.plot(x,x**2,'g--')
plt.plot(x, x**3, 'o--')

Sie können Daten aus einem Array, wie Pandas, nach dem Elementnamen wie unten gezeigt plotten. Unten sagen wir Daten['a'] versus Daten['b'].

    data = {'a': np.arange(10),
    'b': np.arange(10)}
 

plt.scatter('a', 'b', c='g', data=data)

print(data)

plt.show()

Das ist dasselbe wie unten, allerdings verwenden wir Pandas.

    import pandas as pd

data = {'a': np.arange(10),
    'b': np.arange(10)}
    
df=pd.DataFrame(data=data)

plt.scatter('a', 'b', c='g', data=df)
 

plt.show()

In diesem Beispiel sind die Werte ein Wörterbuchobjekt mit a und b den unten gezeigten Werten.

    'b': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), 'a': array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])}

Wir können auch die Größe jedes Punktes als Array eingeben:

    import pandas as pd

data = {'a': np.arange(10),
    'b': np.arange(10),
     'c':  np.arange(10) * 100
}
    
df=pd.DataFrame(data=data)

plt.scatter('a', 'b', c='g', s='c', data=df)
 

plt.show()

Du könntest die Koordinate zu dieser Karte hinzufügen, indem du Textannotationen verwendest.

Die Argumente sind matplotlib.pyplot.annotate(s, xy, *args, **kwargs)[.

Wobei:

  • s ist die Zeichenkette, die gedruckt werden soll
  • xy sind die im (x,y)-Format angegebenen Koordinaten. Addiere 0,25 zu x, sodass der Text leicht vom tatsächlichen Punkt entfernt ist.
  • **kwargs bedeutet, dass wir zusätzliche Argumente an das Textobjekt weitergeben können. Und das hat die Eigenschaften Schriftgröße und Schriftstärke.

Ergebnisse in:

    import pandas as pd

data = {'a': np.arange(10),
    'b': np.arange(10),
     'c':  np.arange(10) * 100
}
    
df=pd.DataFrame(data=data)

plt.scatter('a', 'b', c='g', s='c', data=df)

for row in df.itertuples():
    x = row.a
    y = row.b 
    str = "({0},{1})".format(x,y)
    plt.annotate(str, (x + 0.25 ,y), fontsize='large', fontweight='bold')
    
 

plt.show()

Ergebnisse in:

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

Mehr aus Orchestrierung

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.