2016-11-29 5 views
0

Я хотел бы чертит «вырезать» через тепловой карте, т.е. применить цветовой градиент к моей plt.plot(x,y) на основе гамма-значений (которые находятся в диапазоне -0.5,0.5.Matplotlib Color Gradient на основе гамма-значения

Любые предложения? Я пытался обойти с помощью рассеяния-сюжет, но Colormap, казалось, применяется к каждой строке по отдельности (а не глобально).

Спасибо!

EDIT чтобы описать в других терминах: я хотел бы сопоставить каждое значение y в интервал до соответствующего цвета в моей цветовой карте. (Фраза «разрезанная тепловая карта» относится только к обычно используемому методу для отображения значений z для функции z=f(x,y) для заданных x и y для цвета.)

Как уже упоминалось ранее, просто применяя цветовой код для кажется, что график рассеяния отображает максимальное значение y каждой строки (как я рисую несколько серий) до белого, как видно из приложения. Вместо этого я хотел бы отобразить глобальный y = 0.5 в моем графике на белый и -0,5 на черный для каждой строки.

Example

+1

Вы имеете в виду следующее: http://stackoverflow.com/questions/8202605/matplotlib-scatterplot-colour-as-a-function-of-a-third-variable#8204981. Обратите внимание, что для этого вам нужно использовать 'scatter', чтобы вы могли определить цвет для каждой точки, иначе' plot', нужно будет интерполировать (как-то) между значениями/цветами, чтобы дать непрерывную линию. –

+0

Непонятно, что вы подразумеваете под словом «" по карте тепла ". Можете ли вы более подробно описать, что вы имеете в виду, возможно, разместите свои данные или пример того, как это должно выглядеть? – ImportanceOfBeingErnest

+0

Спасибо за ваши комментарии. Я отредактировал мой вопрос; не уверен, почему downvote ... – Faser

ответ

1

Оказывается, мне нужно, чтобы нормализовать свою цветовую палитру с помощью

norm = colors.Normalize(vmin=-min, vmax=max) 

, а затем вызвать plt.scatter(x, y, c=y, norm=norm, …).