Python

Heatmaps und Farbbalken in Matplotlib

Heatmaps und Farbbalken in Matplotlib
Die Datenvisualisierung ist einer der wichtigsten Schritte in der Datenwissenschaft (oder jeder anderen Wissenschaft). Wir Menschen sind schlecht darin, Reihen und Reihen von Zahlen zu verstehen. Aus diesem Grund ist es immer hilfreich, ein Dienstprogramm wie Matplotlib zu haben, das uns hilft, eine visuelle Intuition davon zu entwickeln, was passiert, wenn beispielsweise ein maschineller Lernalgorithmus riesige Datenmengen klassifiziert.

Während Diagramme, die die Beziehung zwischen zwei Variablen wie Größe und Gewicht zeigen, leicht auf einem Flachbildschirm gezeichnet werden können, wie unten gezeigt, wird es wirklich chaotisch, wenn wir mehr als zwei Parameter haben.

Dann versuchen die Leute, auf 3D-Diagramme umzusteigen, aber diese sind oft verwirrend und klobig, was den gesamten Zweck der Datenvisualisierung zunichte macht. Wir brauchen Heatmaps für Visuals.

Was sind Heatmaps??

Wenn Sie sich das Bild einer Wärmebildkamera ansehen, sehen Sie eine wörtliche Heatmap see. Wärmebildkamera stellt unterschiedliche Temperaturen als unterschiedliche Farben dar. Das Farbschema spricht unsere Intuition an, dass Rot eine „warme Farbe“ ist und Blau und Schwarz für kalte Oberflächen verwendet.

Diese Ansicht des Mars ist ein wirklich gutes Beispiel, wo die kalten Regionen blau gefärbt sind, während die wärmeren Regionen überwiegend rot und gelb sind. Der Farbbalken im Bild zeigt, welche Farbe welche Temperatur repräsentiert.

Mit matplotlib können wir einen Punkt (x, y) auf dem Graphen mit einer bestimmten Farbe assoziieren, die die Variable darstellt, die wir visualisieren möchten. Es muss nicht die Temperatur sein, es könnte jede andere Variable sein. Wir zeigen auch a Farbbalken daneben, um Benutzern anzuzeigen, was verschiedene Farben bedeuten.

Oftmals würden Sie Leute sehen, die Colormaps anstelle von Heatmaps erwähnen. Diese werden oft synonym verwendet. Colormap ist ein allgemeinerer Begriff.

Installieren und Importieren von Matplotlib und verwandten Paketen

Um mit Matplotlib zu beginnen, stellen Sie sicher, dass Python (vorzugsweise Python 3 und pip) installiert ist. Sie brauchen auch numpy, scipy und Pandas mit Datensätzen arbeiten. Da wir eine einfache Funktion zeichnen werden, sind nur zwei der Pakete numpy und matplotlib werden notwendig sein.

$ pip install matplotlib numpy
#oder wenn Sie sowohl Python 2 als auch 3 installiert haben
$ pip3 installiere matplotlib numpy

Nachdem Sie die Bibliotheken installiert haben, müssen Sie sicherstellen, dass sie in Ihr Python-Programm importiert werden.

numpy als np importieren
Matplotlib importieren.pyplot als plt

Jetzt können Sie die von diesen Bibliotheken bereitgestellten Funktionen verwenden, indem Sie eine Syntax wie . verwenden np.numpyfunktion()und  plt.eine andere Funktion ().

Ein paar Beispiele

Beginnen wir damit, eine einfache mathematische Funktion zu zeichnen, die Punkte auf einer Ebene (ihre x- und y-Koordinaten) nimmt und ihnen einen Wert zuweist. Der Screenshot unten zeigt die Funktion zusammen mit dem Plot.

Die verschiedenen Farben stellen unterschiedliche Werte dar (wie durch die Skala neben dem Diagramm angezeigt). Schauen wir uns den Code an, mit dem dies generiert werden kann.

numpy als np importieren
Matplotlib importieren.pyplot als plt
 
# Mathematische Funktion, die wir zeichnen müssen
def z_func(x, y):
zurück (1 - (x ** 2 + y ** 3)) * np.exp(-(x ** 2 + y ** 2) / 2)
# Eingabewerte einrichten
x = np.Bereich (-3.0, 3.0, 0.1)
y = np.Bereich (-3.0, 3.0, 0.1)
X, Y = np.Maschengitter(x, y)
 
# Berechnung der Ausgabe und Speicherung im Array Z
Z = z_func(X, Y)
 
im = plt.imshow(Z, cmap=plt.cm.RdBu, Umfang=(-3, 3, 3, -3), Interpolation='bilinear')
 
plt.Farbbalken (im);
 
plt.title('$z=(1-x^2+y^3) e^-(x^2+y^2)/2$')
 
plt.Show()

Das erste, was zu beachten ist, ist, dass wir nur matplotlib importieren.pyplot einen kleinen Teil der gesamten Bibliothek. Da das Projekt schon ziemlich alt ist, hat sich im Laufe der Jahre einiges angesammelt. Zum Beispiel matplotlib.pyplot war damals beliebt, ist aber jetzt nur noch ein historisches Relikt und der Import fügt Ihrem Programm nur noch mehr Blähungen hinzu.

Als nächstes definieren wir die mathematische Funktion, die wir darstellen möchten. Es nimmt zwei Werte (x,y) an und gibt den dritten Wert z . zurück. Wir haben die Funktion definiert noch nicht verwendet.

Der nächste Abschnitt übernimmt die Aufgabe, ein Array von Eingabewerten zu erstellen, wir verwenden dafür numpy, obwohl Sie das eingebaute verwenden können Reichweite() Funktion dafür wenn du magst. Sobald die Liste der x- und y-Werte erstellt wurde (von minus 3 bis 3), berechnen wir daraus den z-Wert.

Nachdem wir unsere Eingaben und Ausgaben berechnet haben, können wir die Ergebnisse grafisch darstellen. Das plt.imshow() teilt Python mit, dass sich das Bild auf Z bezieht, was unsere Ausgabevariable ist. Es sagt auch, dass es eine Farbkarte sein wird, eine Cmap, mit Rot Blau (RdBu)  Skala von -3 bis 3 auf beiden Achsen. Das Interpolation Parameter macht den Graphen künstlich glatter. Sonst würde dein Bild ziemlich pixelig und grob aussehen.

An diesem Punkt wird das Diagramm erstellt, nur nicht gedruckt. Wir fügen dann die Farbleiste an der Seite hinzu, um verschiedene Werte von Z mit verschiedenen Farben zu korrelieren, und erwähnen die Gleichung im Titel. Dies geschieht in Schritten plt.Farbbalken (im) und plt.Titel(… ). Schließlich zeigt uns der Aufruf der Funktion den Graphen auf dem Bildschirm.

Wiederverwendbarkeit

Sie können die obige Struktur verwenden, um jede andere 2D-Farbkarte zu zeichnen. Sie müssen sich nicht einmal an mathematische Funktionen halten. Wenn Sie riesige Datenmengen in Ihrem Dateisystem haben, vielleicht Informationen über eine bestimmte demografische Daten oder andere statistische Daten, können Sie diese durch Ändern der X, Y Werte, ohne den Colormap-Bereich zu ändern.

Ich hoffe, Sie fanden diesen Artikel nützlich und wenn Sie ähnliche Inhalte mögen, lassen Sie es uns wissen.

Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...