【发布时间】:2019-03-23 20:45:35
【问题描述】:
如何使用 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) 的图形,使线条颜色代表 z 遵循某个颜色图 (cmap) 的值,例如“等离子”。
编辑:
这个问题被标记为可能重复,但引用了question,其中所需的结果是一条改变颜色的线以帮助遵循它绘制的路径(序列信息),而不是添加关于另一个值的信息(在这个案例 z)。
正如 cmets 中所指出的,它更接近 this example,但我一直在寻找比创建一组线段并单独着色更简单的方法。
【问题讨论】:
-
似乎multicolored_line example 不是很可追溯。您能否帮助我们并告诉我们您在搜索引擎中使用的哪些概念不会导致此弹出窗口?
-
感谢您的关注,@ImportanceOfBeingErnest。我之前可以到达 multicolored_line 示例,但是 “创建一组线段,以便我们可以单独为它们着色。这会将点创建为 N x 1 x 2 数组,以便我们可以轻松地将点堆叠在一起以获得段。线集合的段数组需要是 (numlines) x(每行点数)x 2(对于 x 和 y)" 似乎是一个 hack。我认为可能存在一种简单直接的方法......
-
我明白了。好吧,下次在这里问问题时,请提及您发现的此类内容。它将帮助您获得更好的答案。那么你有什么建议如何以不同的方式表述吗?当然,有一个想法是有一个包装函数来创建这样的行集合,但还没有人真正致力于它。
-
This question 可能很有趣,以防您不想看到图中的各个部分。 Appart,我不知道“更简单”是什么意思。如果您对自己的期望有清晰的认识,当然可以尽可能详细地描述它,我们可以重新提出问题?
-
从概念上讲,除了按线段着色(即stackoverflow.com/questions/10252412)之外没有其他选项,但您可以编写一个插值函数来平滑颜色过渡,这是您关心的问题。另请参阅该答案中的最后一条评论。
标签: python matplotlib colormap line-plot