„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie zeichne ich eine Linie mit unterschiedlichen Farben für jedes Segment von 10 aufeinanderfolgenden Punkten?

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

Veröffentlicht am 14.11.2024
Durchsuche:728

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

Eine Linie in verschiedenen Farben zeichnen

Problemstellung

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.

Lösung

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()

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

Neuestes Tutorial Mehr>

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