Heim  >  Artikel  >  Backend-Entwicklung  >  Wie zeichne ich mit Matplotlib eine Linie mit unterschiedlichen Farben?

Wie zeichne ich mit Matplotlib eine Linie mit unterschiedlichen Farben?

Linda Hamilton
Linda HamiltonOriginal
2024-10-31 06:51:30414Durchsuche

How to Plot a Line with Varying Colors Using Matplotlib?

Plotten einer Linie mit unterschiedlichen Farben

Problem

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.

Lösung

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!

Stellungnahme:
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