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