«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как построить линию разных цветов для каждого сегмента из 10 последовательных точек?

Как построить линию разных цветов для каждого сегмента из 10 последовательных точек?

Опубликовано 14 ноября 2024 г.
Просматривать:722

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

Построение линии в разных цветах

Постановка задачи

Дано два списка, 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