"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo trazar una línea con diferentes colores para cada segmento de 10 puntos consecutivos?

¿Cómo trazar una línea con diferentes colores para cada segmento de 10 puntos consecutivos?

Publicado el 2024-11-14
Navegar:943

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

Trazar una línea en diferentes colores

Enunciado del problema

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.

Solución

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

Selección de colores

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

Último tutorial Más>

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