Участок, который вы указали, не имеет цвета, заданного вертикальной осью графика (это то, что я хотел бы рассмотреть y-value). Вместо этого он просто имеет 8 разных сюжетов, каждый с другим цветом, без указания того, что означает цвет.
Вот пример того, что выглядит как ваш сюжет:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
# some fake data:
x = np.linspace(0, 2*np.pi, 1000)
fs = np.arange(1, 5.)
ys = np.sin(x*fs[:, None])
for y, f in zip(ys, fs):
plt.plot(x, y, lw=3, c=cm.hot(f/5))
Если вы на самом деле хотите, чтобы цвет одной линии, чтобы изменить в отношении его стоимости, вы должны рода хак он, потому что любой данный объект Line2D
может иметь только один цвет, насколько я знаю. Один из способов сделать это - создать график рассеяния, где каждая точка может иметь любой цвет.
x = np.linspace(0, 2*np.pi, 1000)
y = np.sin(2*x)
plt.scatter(x,y, c=cm.hot(np.abs(y)), edgecolor='none')
Примечания:
- вектор цвет должен находиться в диапазоне между
0
и 1
, так что если y.max() > 1
, а затем нормализуют им: c=cm.hot(y/y.max())
и убедитесь, что все положительные.
- Я использовал
edgecolor='none'
, потому что по умолчанию маркеры scatter
имеют черный контур, что делает его менее похожим на однородную линию.
- Если ваши данные расположены слишком далеко, вам нужно будет интерполировать данные, если вам не нужны промежутки между маркерами.
Это не ясно, что задает цвет в вашем примере. Должно быть какое-то третье значение, потому что цвет явно не установлен значением 'c \ tau/R_0' или' kR_0'. – askewchan
Дополнительную информацию см. В разделе [Цвет линии зависит от индекса данных для линейного графика в matplotlib?] (Http://stackoverflow.com/questions/13972287/having-line-color-vary-with-data-index-for- line-graph-in-matplotlib) – askewchan