gpt4 book ai didi

python - 如何在 matplotlib 中绘制半无限线(射线)?

转载 作者:行者123 更新时间:2023-12-05 02:35:47 27 4
gpt4 key购买 nike

我们可以在 matplotlib 中使用 plt.axline() ( https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.axline.html ) 从给定点以给定斜率绘制无限直线

是否有一种简洁的方法可以从给定点沿给定方向绘制半无限直线或射线?最好不必计算轴限制。

对于 axhline 和 axvline,我们可以使用 xmin、xmax、ymin、ymax 参数之一来获取射线,但 axline 不接受这些参数。

相关问题:

最佳答案

我找不到基于 axline documentation 的简洁方法来执行此操作,因此我将发布我的 hacky 解决方法,即通过从 xmin 到起点的 x 值绘制一条线段(linewidth 大于您的轴线)来模糊线的部分。

我承认这是一个丑陋的解决方案,如果我想到更好的办法,我会更新我的答案。

import matplotlib.pyplot as plt

## draw infinite line starting from (0.5,0.5) with slope=1
x0,y0,m= 0.5,0.5,1
plt.axline((x0, y0), slope=m, color='k', transform=plt.gca().transAxes, linewidth=0.5, alpha=0.5)

## obscure the line segment from xmin to x0
ymin,ymax = plt.gca().get_ylim()
xmin = x0 - (y0-ymin / m)

## plot twice so that a portion of the axline can't be seen
plt.plot([xmin,x0], [ymin,y0], '#ffffff', linewidth=1.0, alpha=1.0)
plt.plot([xmin,x0], [ymin,y0], '#ffffff', linewidth=1.0, alpha=1.0)

plt.ylim([0, 1])
plt.xlim([0, 1])
plt.show()

enter image description here

关于python - 如何在 matplotlib 中绘制半无限线(射线)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70477290/

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