当值超过某个y值时,是否可以更改绘图中的线条颜色?例如:
import numpy as np
import matplotlib.pyplot as plt
a = np.array([1,2,17,20,16,3,5,4])
plt.plt(a)
这一条给出了以下内容:
我想将超过y=15的值可视化。类似于下图:
或者类似这样的东西(带循环线型):
:
有可能吗?
当值超过某个y值时,是否可以更改绘图中的线条颜色?例如:
import numpy as np
import matplotlib.pyplot as plt
a = np.array([1,2,17,20,16,3,5,4])
plt.plt(a)
这一条给出了以下内容:
我想将超过y=15的值可视化。类似于下图:
或者类似这样的东西(带循环线型):
:
有可能吗?
4条答案
按热度按时间hl0ma9xz1#
定义一个helper函数(这是一个简单的函数,可以添加更多的功能)。这段代码是对文档中的this example的轻微重构。
用法示例
并且输出
如果只想让标记改变颜色,请使用相同的norm和cmap,并将它们作为
rt4zxlrg2#
不幸的是,matplotlib没有一个简单的选项来改变一条线的一部分的颜色。我们必须自己编写逻辑。诀窍是将线切割成一组线段,然后为每一段线段指定一种颜色,然后绘制它们。
第二种方法要简单得多,我们先画一条直线,然后在其上添加标记作为散点图:
qncylg1j3#
基本上,@RaJa提供了解决方案,但我认为您可以通过在numpy中使用掩码数组,在不加载额外的包(panda)的情况下执行相同的操作:
结果:x1c 0d1x
oyxsuwqo4#
我不知道matplolib中是否有内置函数,但是你可以把你的numpy数组转换成panda序列,然后结合布尔选择/掩码使用plot函数。