In matplotlib kann das Zeichnen einer Linie mit unterschiedlichen Farbsegmenten durch verschiedene Ansätze erreicht werden. Die Auswahl hängt von der Anzahl der zu zeichnenden Liniensegmente ab.
Wenn nur wenige Liniensegmente erforderlich sind, wie zum Beispiel beim Zeichnen einer Flugbahn, berücksichtigen Sie Folgendes:
import numpy as np
import matplotlib.pyplot as plt
# Generate random data
xy = (np.random.random((10, 2)) - 0.5).cumsum(axis=0)
fig, ax = plt.subplots()
# Plot each line segment with a unique color
for start, stop in zip(xy[:-1], xy[1:]):
x, y = zip(start, stop)
ax.plot(x, y, color=plt.cm.gist_ncar(np.random.random()))
plt.show()
Bei der Verarbeitung einer großen Anzahl von Liniensegmenten ist die Verwendung einer LineCollection eine effizientere Methode.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
# Generate random data
xy = (np.random.random((1000, 2)) - 0.5).cumsum(axis=0)
# Reshape data for compatibility with LineCollection
xy = xy.reshape(-1, 1, 2)
segments = np.hstack([xy[:-1], xy[1:]])
fig, ax = plt.subplots()
# Create a LineCollection with randomly assigned colors
coll = LineCollection(segments, cmap=plt.cm.gist_ncar)
coll.set_array(np.random.random(xy.shape[0]))
# Add the LineCollection to the plot
ax.add_collection(coll)
ax.autoscale_view()
plt.show()
Bei beiden Methoden kann die ausgewählte Farbkarte geändert werden, indem auf die Matplotlib-Dokumentation verwiesen wird.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3