Maison  >  Article  >  développement back-end  >  Comment tracer une ligne avec des couleurs variables pour chaque segment de 10 points consécutifs ?

Comment tracer une ligne avec des couleurs variables pour chaque segment de 10 points consécutifs ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 01:53:02368parcourir

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

Tracer une ligne dans différentes couleurs

Énoncé du problème

Étant donné deux listes, latt et lont, l'objectif est de tracer une seule ligne où chacune le segment de 10 points consécutifs est représenté dans une couleur différente.

Solution

Nombre limité de segments de ligne

Si le nombre de segments de ligne est petit , par exemple 10 ou moins, une approche simple consiste à utiliser une boucle pour tracer chaque segment avec une couleur unique.

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

Grand nombre de segments de ligne

Pour un grand nombre de segments de ligne, l’utilisation d’une boucle peut être lente. Au lieu de cela, créez un objet LineCollection.

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

Sélection des couleurs

Pour les deux approches, nous utilisons la palette de couleurs "gist_ncar" pour générer des couleurs uniques. Reportez-vous à cette page pour d'autres options de palette de couleurs : http://matplotlib.org/examples/color/colormaps_reference.html

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn