Maison > Article > développement back-end > Comment tracer une ligne avec des couleurs variables à l'aide de Matplotlib ?
Étant donné deux listes de points de données, latt et lont, l'objectif est de visualiser les données comme une ligne aux couleurs variées. La ligne doit être segmentée en périodes, chaque période comprenant 10 points de données des deux listes. Différentes couleurs doivent être attribuées à chaque période.
Méthode 1 : Nombre limité de segments de ligne
Pour un petit nombre de segments de ligne, l'approche suivante peut être utilisée :
<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>
Méthode 2 : Grand nombre de segments de ligne
Pour un grand nombre de segments de ligne, une LineCollection peut être utilisée pour améliorer les performances :
<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>
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!