"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como traçar uma linha com cores variadas para cada segmento de 10 pontos consecutivos?

Como traçar uma linha com cores variadas para cada segmento de 10 pontos consecutivos?

Publicado em 2024-11-14
Navegar:165

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

Traçando uma linha em cores variadas

Declaração do problema

Dadas duas listas, latt e lont, o objetivo é traçar uma única linha onde cada segmento de 10 pontos consecutivos é representado em uma cor diferente.

Solução

Número limitado de linhas Segmentos

Se o número de segmentos de linha for pequeno, como 10 ou menos, uma abordagem simples é usar um loop para plotar cada segmento com uma cor exclusiva.

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

Grande número de segmentos de linha

Para um grande número de segmentos de linha, usar um loop pode ser lento. Em vez disso, crie um 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()

Selecionando cores

Para ambas as abordagens, usamos o mapa de cores "gist_ncar" para gerar cores exclusivas. Consulte esta página para outras opções de mapas de cores: http://matplotlib.org/examples/color/colormaps_reference.html

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3