Дано два списка, lat и long, цель состоит в том, чтобы построить одну линию, в которой каждый сегмент из 10 последовательных точек представлен в другом color.
Ограниченное количество сегментов линии
Если количество сегментов линии небольшое, например 10 или меньше, можно использовать простой подход заключается в использовании цикла для построения каждого сегмента с уникальным цветом.
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()
Большое количество сегментов линии
Для большого количества сегментов линии использование цикла может быть медленным. Вместо этого создайте объект 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()
Для обоих подходов мы используем карту цветов «gist_ncar» для генерации уникальных цветов. На этой странице представлены другие параметры цветовой карты: http://matplotlib.org/examples/color/colormaps_reference.html
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3