【发布时间】:2021-02-03 20:42:13
【问题描述】:
假设我想绘制两条相互交叉的实线,并且仅当 line2 在第一行上方时才绘制虚线。这些线位于同一个 x 网格上。实现这一目标的最佳/最简单方法是什么?我可以在绘制之前将 line2 的数据拆分为两个对应的数组,但我想知道是否有更直接的方法来设置某种条件线型格式?
小例子:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0,5,0.1)
y1 = 24-5*x
y2 = x**2
plt.plot(x,y1)
plt.plot(x,y2)#dashed if y2 > y1?!
plt.show()
对于更复杂的场景有相关的问题,但我正在为这个标准案例寻找最简单的解决方案。有没有办法直接在 plt.plot() 中执行此操作?
【问题讨论】:
-
也许您可以找到线条相交的位置,在该索引处分割您想要破折号的线条,然后使用
plt.plot(x, y, linestyle="dashed") -
是的,这是我目前的解决方法。但是,我想知道是否有更简单或更直接的方法来实现这一点。
标签: python matplotlib plot linestyle