Как построить линейный сюжет matplotlib с помощью карты цветов? - PullRequest
0 голосов
/ 19 октября 2018

Как я могу создать линейный сюжет, используя python matplotlib таким образом, чтобы цвет линии варьировался относительно другой серии?

Для простого примера:

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(0.0, 2.0, 0.01)
y = np.sin(2 * np.pi * t)
z = (t-1) ** 2

fig = plt.figure()
ax = plt.axes()
ax.plot(t, y)
ax.plot(t, z)
plt.show()

Вместоиз:

lineplots

Я хотел бы построить график только (t, y) таким образом, чтобы цвет линии представлял значение z, следующее определенной карте цветов(cmap), например «plasma».

Редактировать:

Этот вопрос был помечен как возможно повторяющийся, но ссылается на вопрос , где желаемый результат представляет собой строкуизменение цвета, чтобы помочь следовать по пути, по которому оно было нарисовано (информация о последовательности), вместо добавления информации о другом значении (в данном случае z).

Это ближе к в этом примере , как указанов комментариях, но я искал что-то более простое, чем необходимость создавать набор отрезков и окрашивать их по отдельности.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Использование функции colorline, на которую ссылается в ответе на вопрос, который вы сказали, не является дубликатом этого , это можно сделать:

from colorline import colorline

colorline(t, y, z)
plt.xlim(t.min(), t.max())
plt.ylim(y.min(), y.max())
plt.show()

enter image description here

Это создает несколько отрезков, каждый из которых имеет цвет, определяемый z.

0 голосов
/ 19 октября 2018

Я не думаю, что есть простой способ сделать это с помощью линейных графиков, но с разбросом это довольно просто.Если вам все еще нужна соединительная линия, вы можете немного подделать ее с серой линией за ней:

ax.scatter(t, y, c=z, marker='.')
ax.plot(t, y, c='gray')

enter code here

...