Plotten eine Array in Python
Die Visualisierung von Daten verbessert das allgemeine Verständnis der Daten und hilft beim Gedächtnis, da Menschen dazu neigen, sich mehr an die Visuals als an die Texte zu erinnern. Die Visualisierung von Daten ist von entscheidender Bedeutung, da uns viele Daten zur Verfügung stehen und wir ein gut strukturiertes Format benötigen, um sie zu verstehen. Diese Aktivität gehört zur täglichen Routine eines jeden Data Scientists und Machine-Learning-Enthusiasten. Sie müssen Daten visualisieren, um sie besser zu verstehen und gute und effiziente Modelle für maschinelles Lernen zu konstruieren.
Daten werden oft in Form von Arrays dargestellt, und wir landen in Situationen, in denen wir sie darstellen müssen. In diesem Artikel erfahren Sie, wie wir solche Daten mit Python darstellen können.
Bevor wir mit dem Code fortfahren, müssen wir eines verstehen. Arrays können n-dimensional
sein, was bedeutet, dass wir Arrays innerhalb von Arrays (2-D Arrays) oder Arrays innerhalb von Arrays haben können, die weiter Arrays enthalten (3D Arrays) usw. Und wenn die Anzahl der Dimensionen zunimmt, nimmt die Komplexität des Plottens der Arrays zu. In solchen Fällen müssen die Arrays in ein anderes Format konvertiert werden, das zum Plotten oder zum Plotten einer anderen Art von Grafik geeignet ist, die die Visualisierung verbessert. In diesem Artikel geht es um das Plotten von 1D- und 2D-Arrays.
Wir verwenden Matplotlib
, eine umfassende Python-basierte Bibliothek für Visualisierungszwecke, und NumPy
zum Plotten von Arrays.
Sie können mehr darüber hier (Matplotlib
) und hier (NumPy
) lesen.
Plotten von 1-D-Arrays in Python
Um ein eindimensionales Array zu zeichnen, beziehen Sie sich auf den folgenden Code.
import numpy as np
import matplotlib.pyplot as plt
x = np.array(range(0, 10))
y = np.array([100, 23, 44, 12, 55, 85, 69, 33, 75, 2])
plt.title("Plotting 1-D array")
plt.xlabel("X axis")
plt.ylabel("Y axis")
plt.plot(x, y, color="red", marker="o", label="Array elements")
plt.legend()
plt.show()
Die Variable y
enthält die zu plottenden Daten und die Variable x
die Indizes. Auch hier wurde für Plotzwecke eine 0-basierte Indizierung in Betracht gezogen. Beachten Sie, dass Sie die Indizierung auch wieder auf 1-basierte Indizierung ändern können, indem Sie dieses x = np.array(range(1, 11))
hinzufügen. Die Funktion plot
nimmt zuerst die Daten für die x-Achse
und dann für die y-Achse
. Das Argument color
legt die Farbe des Liniendiagramms fest, das Argument marker
legt das Symbol fest, das zum Markieren der Punkte über dem Liniendiagramm verwendet wird, und das Argument label
legt die Beschriftung fest, die für diese spezielle Linie angezeigt werden soll. Beachten Sie, dass ohne plt.legend()
keine Informationen über das Label über dem Graphen angezeigt werden.
Die Ausgabe des obigen Codes sieht so aus.
Plotten von 2D-Arrays in Python
Um ein zweidimensionales Array zu zeichnen, beziehen Sie sich auf den folgenden Code.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import figure
figure(figsize=(8, 6))
x = np.array(range(0, 10))
y = np.array(
[
[32, 69, 92, 81, 27, 97, 64, 98, 26, 22],
[85, 76, 63, 44, 94, 52, 71, 66, 2, 62],
[45, 80, 46, 24, 10, 74, 10, 33, 12, 60],
[73, 94, 21, 6, 93, 74, 36, 47, 16, 99],
[96, 84, 66, 12, 43, 58, 17, 16, 28, 6],
[83, 4, 56, 94, 97, 36, 94, 41, 74, 14],
[90, 13, 11, 71, 79, 49, 9, 69, 73, 61],
[94, 52, 28, 18, 14, 15, 91, 95, 16, 42],
[73, 35, 40, 25, 46, 25, 33, 1, 99, 30],
[61, 7, 89, 33, 94, 64, 1, 60, 41, 81],
]
)
plt.title("Plotting a2-D array")
plt.xlabel("X axis")
plt.ylabel("Y axis")
for i, array in enumerate(y):
plt.plot(
x,
array,
color=np.random.rand(
3,
),
marker="o",
label=f"Array #{i}",
)
plt.legend(loc="center left", bbox_to_anchor=(1, 0.5))
plt.show()
Die Variable y
enthält das 2-D
-Array. Wir iterieren über jedes Array des 2-D
-Arrays, zeichnen es mit einer zufälligen Farbe und einem eindeutigen Label. Sobald das Plotten abgeschlossen ist, positionieren wir das Legendenfeld neu und zeigen das Diagramm an.
Die Ausgabe des obigen Codes sieht so aus.