Цвета линий в Matplolib
Есть график:
plt.xlabel('Length')
plt.ylabel('Time')
plt.axis([length_h[0], length_h[-1], time_tau[0], time_tau[-1]])
plt.plot(An[-1], U[-1])
plt.grid()
plt.show()
но цвета линий всегда одинаковые, если я разделяю plt.plot(An[-1], U[-1]) на два, то вид графика меняется.
Как можно сделать два разных цвета для двух линий в одном plt.plot()
Выходит вот такой график

А мне нужно чтобы эти линии были разных цветов
Если я их делю вот так:
plt.xlabel('Length')
plt.ylabel('Time')
plt.axis([length_h[0], length_h[-1], time_tau[0], time_tau[-1]])
plt.plot(An[-1], 'r')
plt.plot(U[-1], 'b')
plt.grid()
plt.show()
То график выглядеть начинает по-другому:
U
An
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Не знаю как это сделать "из коробки", но наколхозить вручную можно легко по отдельным отрезкам:
import matplotlib.pyplot as plt
n = 4
x_arr = range(n)
y_arr = [i**2 for i in range(n)]
c_arr = ['red','green','blue']
for i in range(n-1):
x = x_arr[i:i+2]
y = y_arr[i:i+2]
c = c_arr[i]
plt.plot(x, y, color=c)
Автор решения: CrazyElf
→ Ссылка
Кажется, я понял. У вас данные "закольцованы". Тогда можно их так разделить попробовать:
import matplotlib.pyplot as plt
n = 4
x = [0, 1, 2, 1, 0]
y = [0, 1.25, 2, 0.75, 0]
x_max_ind = max(enumerate(x_arr), key=lambda x: x[1])[0]
plt.plot(x[:x_max_ind+1], y[:x_max_ind+1])
plt.plot(x[x_max_ind:], y[x_max_ind:])




