Maison >développement back-end >Tutoriel Python >Comment tracer des segments de lignes colorées dans Matplotlib ?

Comment tracer des segments de lignes colorées dans Matplotlib ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-29 07:39:02661parcourir

How to Plot Colored Line Segments in Matplotlib?

Segments de lignes colorées dans Matplotlib

Le traçage de lignes avec des couleurs distinctes peut être obtenu par diverses méthodes. L'approche préférée dépend du nombre de segments de ligne à restituer.

Petit nombre de segments de ligne

Pour un petit nombre de segments de ligne (par exemple, moins de 10), l'approche suivante suffit :

<code class="python">import numpy as np
import matplotlib.pyplot as plt

# Define line segment data
xy = (np.random.random((10, 2)) - 0.5).cumsum(axis=0)

# Create figure and axes
fig, ax = plt.subplots()

# Iterate through line segments
for start, stop in zip(xy[:-1], xy[1:]):
    x, y = zip(start, stop)
    ax.plot(x, y, color=np.random.rand(3))

plt.show()</code>

Grand nombre de segments de ligne

Pour un grand nombre de segments de ligne (par exemple, plus d'un millier), LineCollections offre une solution plus efficace :

<code class="python">import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection

# Define line segment data
xy = (np.random.random((1000, 2)) - 0.5).cumsum(axis=0)

# Reshape data into segments
xy = xy.reshape(-1, 1, 2)
segments = np.hstack([xy[:-1], xy[1:]])

# Create figure and axes
fig, ax = plt.subplots()

# Create LineCollection with random colors
coll = LineCollection(segments, cmap=plt.cm.gist_ncar)
coll.set_array(np.random.random(xy.shape[0]))

# Add LineCollection to axes
ax.add_collection(coll)
ax.autoscale_view()

plt.show()</code>

Sélection des couleurs

Les deux méthodes reposent sur une sélection aléatoire des couleurs à partir du coloramp "gist_ncar". Pour une plus grande sélection, reportez-vous à : 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