Maison >développement back-end >Tutoriel Python >Comment tracer des 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.
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>
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>
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!