Bei zwei Listen, Latt und Länge, besteht das Ziel darin, jeweils eine einzelne Linie zu zeichnen Segment von 10 aufeinanderfolgenden Punkten wird anders dargestellt Farbe.
Begrenzte Anzahl von Liniensegmenten
Wenn die Anzahl der Liniensegmente gering ist, z. B. 10 oder weniger, ist ein einfacher Ansatz möglich besteht darin, eine Schleife zu verwenden, um jedes Segment mit einer eindeutigen Farbe darzustellen.
import numpy as np
import matplotlib.pyplot as plt
# Generate random colors
def uniqueish_color():
return plt.cm.gist_ncar(np.random.random())
# Plot the line segments
xy = (np.random.random((10, 2)) - 0.5).cumsum(axis=0)
fig, ax = plt.subplots()
for start, stop in zip(xy[:-1], xy[1:]):
x, y = zip(start, stop)
ax.plot(x, y, color=uniqueish_color())
plt.show()
Große Anzahl von Liniensegmenten
Bei einer großen Anzahl von Liniensegmenten kann die Verwendung einer Schleife langsam sein. Erstellen Sie stattdessen ein LineCollection-Objekt.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
# Generate the line segments
xy = (np.random.random((1000, 2)) - 0.5).cumsum(axis=0)
xy = xy.reshape(-1, 1, 2)
segments = np.hstack([xy[:-1], xy[1:]])
# Create a LineCollection object
fig, ax = plt.subplots()
coll = LineCollection(segments, cmap=plt.cm.gist_ncar)
# Set the color array
coll.set_array(np.random.random(xy.shape[0]))
# Add the LineCollection to the axes
ax.add_collection(coll)
ax.autoscale_view()
# Display the plot
plt.show()
Für beide Ansätze verwenden wir die Farbkarte „gist_ncar“, um eindeutige Farben zu generieren. Weitere Farbkartenoptionen finden Sie auf dieser Seite: http://matplotlib.org/examples/color/colormaps_reference.html
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