gpt4 book ai didi

python - 更改 matplotlib 线条样式中图

转载 作者:太空狗 更新时间:2023-10-29 18:21:26 26 4
gpt4 key购买 nike

我正在绘制一些数据(两条线),我想更改线条之间差异具有统计显着性的部分的线条样式。因此,在下图中(现在链接 b/c 反垃圾邮件政策不允许我发布图像)我希望线条看起来不同(即可能是虚线),直到它们在大约 35 开始收敛x 轴。

line plot

有没有办法轻松做到这一点?我有 x 轴的值,其中差异很大,我只是不清楚如何更改某些 x 轴位置的线条样式。

最佳答案

编辑:我已经打开并离开了,所以我没有注意到@Ricardo 的回答。因为无论如何 matplotlib 都会将事物转换为 numpy 数组,所以有更有效的方法来做到这一点。

举个例子:

只需绘制两条不同的线,一条为虚线,另一条为实线。

例如

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)
y1 = 2 * x
y2 = 3 * x

xthresh = 4.5
diff = np.abs(y1 - y2)
below = diff < xthresh
above = diff >= xthresh

# Plot lines below threshold as dotted...
plt.plot(x[below], y1[below], 'b--')
plt.plot(x[below], y2[below], 'g--')

# Plot lines above threshold as solid...
plt.plot(x[above], y1[above], 'b-')
plt.plot(x[above], y2[above], 'g-')

plt.show()

enter image description here

对于循环的情况,使用掩码数组:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 100)
y1 = 2 * np.cos(x)
y2 = 3 * np.sin(x)

xthresh = 2.0
diff = np.abs(y1 - y2)
below = diff < xthresh
above = diff >= xthresh

# Plot lines below threshold as dotted...
plt.plot(np.ma.masked_where(below, x), np.ma.masked_where(below, y1), 'b--')
plt.plot(np.ma.masked_where(below, x), np.ma.masked_where(below, y2), 'g--')

# Plot lines above threshold as solid...
plt.plot(np.ma.masked_where(above, x), np.ma.masked_where(above, y1), 'b-')
plt.plot(np.ma.masked_where(above, x), np.ma.masked_where(above, y2), 'g-')

plt.show()

enter image description here

关于python - 更改 matplotlib 线条样式中图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9284877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com