Heim > Artikel > Backend-Entwicklung > Wie zeichne ich mit Matplotlib eine Linie mit unterschiedlichen Farben?
Gegeben zwei Listen von Datenpunkten, Breitengrad und Längengrad, besteht das Ziel darin, die Daten als zu visualisieren eine Linie mit unterschiedlichen Farben. Die Linie sollte in Zeiträume unterteilt werden, wobei jeder Zeitraum 10 Datenpunkte aus beiden Listen umfasst. Jeder Periode sollten unterschiedliche Farben zugewiesen werden.
Methode 1: Begrenzte Anzahl von Liniensegmenten
Für eine kleine Anzahl von Liniensegmenten Der folgende Ansatz kann verwendet werden:
<code class="python">import numpy as np import matplotlib.pyplot as plt def uniqueish_color(): """Generate a unique-looking color.""" return plt.cm.gist_ncar(np.random.random()) # Generate random data xy = (np.random.random((10, 2)) - 0.5).cumsum(axis=0) # Create a figure and axis fig, ax = plt.subplots() # Iterate over segments for start, stop in zip(xy[:-1], xy[1:]): x, y = zip(start, stop) ax.plot(x, y, color=uniqueish_color()) # Display the plot plt.show()</code>
Methode 2: Große Anzahl von Zeilen Segmente
Für eine große Anzahl von Liniensegmenten kann eine LineCollection zur Verbesserung der Leistung verwendet werden:
<code class="python">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 xy = xy.reshape(-1, 1, 2) segments = np.hstack([xy[:-1], xy[1:]]) # Create a figure and axis fig, ax = plt.subplots() # Create a LineCollection coll = LineCollection(segments, cmap=plt.cm.gist_ncar) # Set colors coll.set_array(np.random.random(xy.shape[0])) # Add collection to axis ax.add_collection(coll) # Adjust view ax.autoscale_view() # Display the plot plt.show()</code>
Das obige ist der detaillierte Inhalt vonWie zeichne ich mit Matplotlib eine Linie mit unterschiedlichen Farben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!