Dadas dos listas, latt y lont, el objetivo es trazar una sola línea donde cada El segmento de 10 puntos consecutivos se representa en un color diferente.
Número limitado de segmentos de línea
Si el número de segmentos de línea es pequeño , como 10 o menos, un enfoque simple es usar un bucle para trazar cada segmento con un color único.
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()
Gran cantidad de segmentos de línea
Para una gran cantidad de segmentos de línea, usar un bucle puede ser lento. En su lugar, cree un objeto LineCollection.
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()
Para ambos enfoques, utilizamos el mapa de colores "gist_ncar" para generar colores únicos. Consulte esta página para conocer otras opciones de mapas de colores: http://matplotlib.org/examples/color/colormaps_reference.html
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3