Matplotlib строит одну линию, которая непрерывно меняет цвет
Я хотел бы построить кривую на плоскости (x, y), где цвет кривой зависит от значения другой переменной T. x представляет собой массив 1D numpy, y представляет собой массив 1D numpy.
T=np.linspace(0,1,np.size(x))**2
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y)
Я хочу, чтобы строка менялась от синего до красного (с использованием RdBu colormap) в зависимости от значения T (одно значение T существует для каждой пары (x, y)).
Я нашел это, но я не знаю, как деформировать его на моем простом примере. Как использовать linecollection для моего примера? http://matplotlib.org/examples/pylab_examples/multicolored_line.html
Спасибо.
Ответы
Ответ 1
Одной из идей может быть установка цвета с помощью color=(R,G,B)
, а затем разделение графика на сегменты n
и непрерывное изменение одного из R, G или B (или их комбинаций)
import pylab as plt
import numpy as np
# Make some data
n=1000
x=np.linspace(0,100,n)
y=np.sin(x)
# Your coloring array
T=np.linspace(0,1,np.size(x))**2
fig = plt.figure()
ax = fig.add_subplot(111)
# Segment plot and color depending on T
s = 10 # Segment length
for i in range(0,n-s,s):
ax.plot(x[i:i+s+1],y[i:i+s+1],color=(0.0,0.5,T[i]))
Надеюсь, это полезно