如何使用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值。
编辑:
该问题被标记为可能重复,但是引用了question,其中期望的结果是改变颜色的线以帮助遵循绘制的路径(序列信息),而不是在另一个值上添加信息(在这种情况下是z)。
正如评论中指出的那样,它更接近this example,但我正在寻找比创建一组线段并分别为其上色更简单的方法。
答案 0 :(得分:0)
我认为没有简单的方法可以通过线图来实现,但是通过散点图,这很容易。如果仍然需要连接线,则可以在其后面加上一条灰线来伪造它:
ax.scatter(t, y, c=z, marker='.')
ax.plot(t, y, c='gray')
答案 1 :(得分:0)
使用引用为colorline
的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
确定。