Heim > Artikel > Backend-Entwicklung > Wie zeichne ich eine Linie mit unterschiedlichen Farben für jedes Segment von 10 aufeinanderfolgenden Punkten?
Bei zwei Listen, Latt und Long, besteht das Ziel darin, jeweils eine einzelne Linie zu zeichnen Segment von 10 aufeinanderfolgenden Punkten wird in einer anderen Farbe dargestellt.
Begrenzte Anzahl von Liniensegmenten
Wenn die Anzahl der Liniensegmente gering ist B. 10 oder weniger, besteht ein einfacher Ansatz darin, eine Schleife zu verwenden, um jedes Segment mit einer eindeutigen Farbe darzustellen.
<code class="python">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()</code>
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.
<code class="python">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()</code>
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
Das obige ist der detaillierte Inhalt vonWie zeichne ich eine Linie mit unterschiedlichen Farben für jedes Segment von 10 aufeinanderfolgenden Punkten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!