Wie zeichne ich eine Linie mit unterschiedlichen Farben für jedes Segment von 10 aufeinanderfolgenden Punkten?

Linda Hamilton
Freigeben: 2024-10-31 01:53:02
Original
385 Leute haben es durchsucht

How to Plot a Line with Varying Colors for Each Segment of 10 Consecutive Points?

Zeichnen einer Linie in verschiedenen Farben

Problemstellung

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.

Lösung

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Auswählen von Farben

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!