如何使用颜色图绘制 matplotlib 线图?

How to plot a matplotlib line plot using colormap?

如何使用 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()

而不是:

我只想绘制 (t, y) 的图形,线条颜色表示遵循特定颜色图 (cmap) 的 z 值,例如 'plasma'.

编辑:

这个问题被标记为可能重复,但引用了一个 question,其中期望的结果是一条线改变颜色以帮助遵循它绘制的路径(序列信息),而不是在另一个上添加信息值(在本例中为 z)。

它更接近 this example,如评论中所指出的,但我一直在寻找比必须创建一组线段并分别为它们着色更简单的方法。

我不认为有一种简单的方法可以用线图来做,但是用散点图,这很容易。如果你还想要一条连接线,你可以在它后面加一条灰色的线来伪造一下:

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

使用colorline function referenced in an answer to the question you said is not a duplicate of this,可以做到:

from colorline import colorline

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

这将创建多个线段,每个线段的颜色由 z 决定。