gpt4 book ai didi

python - 围绕 matplotlib 线绘制边框

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

有没有合适的方法来绘制边框来勾勒出 matplotlib 图?

到目前为止我找到的最好答案是这个答案[ 1 ] 和 matplotlib 教程[ 2 ] 使用 matplotlib.patheffects为轮廓画一个稍粗的笔触。

但我的问题是,如果您设置 alpha < 1.0,它会破坏半透明图当我想要一个真正的边框时,您会看到主要笔划后面的完整笔划。有没有办法画出真实的轮廓?

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patheffects as mpe

outline=mpe.withStroke(linewidth=8, foreground='black')

x = np.linspace(0, 2*np.pi, 1000)

plt.plot(x, np.sin(x), lw=5, color='red', path_effects=[outline],
label="stroke no alpha")

plt.plot(x, np.sin(x-np.pi/3.), lw=5, alpha=0.5, color='red', path_effects=[outline],
label="stroke with alpha")

plt.plot(x, np.sin(x-2*np.pi/3.), lw=5, alpha=0.5, color='red',
label="no stroke with alpha")

plt.legend()
plt.show()

enter image description here

最佳答案

有一种方法可以使用 alpha 绘制真正的边框,因为在红线下方看不到较粗的黑线。诀窍是绘制一条白线覆盖黑线不需要的部分,以便只留下边框。

因此,“带 alpha 的笔画”会变成这样:

pe1 = [mpe.Stroke(linewidth=8, foreground='black'),
mpe.Stroke(foreground='white',alpha=1),
mpe.Normal()]

plt.plot(x, np.sin(x-np.pi/3.), color='red', label="stroke with alpha", lw=5,
alpha=0.5, path_effects=pe1)

产生如下图:

stroke

可以看出,这解决了有边框和没有边框之间的色差问题,但无法看到下面的线条。

根据应用程序,白色层的 alpha 参数也可以设置为半透明值,以便在遮盖黑线以绘制边框和允许看到可能是透明的其他线之间实现权衡以下。例如,以下路径效果:

pe1 = [mpe.Stroke(linewidth=8, foreground='black'),
mpe.Stroke(foreground='white',alpha=0.6),
mpe.Normal()]

产量:

strokes alpha

它介于红色和 alpha 0.5 组合产生的粉红色和完全看到下面的黑线之间;同时仍允许查看之前绘制的其他线条。

关于python - 围绕 matplotlib 线绘制边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50411976/

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