[英]Drawing line through two points, instead of between (on a log scale, but still a straight line)
我目前正在开发一个 Python API,负责绘制在使用 Angular 的前端应用程序中制作的图表和切线。 在此应用程序中,可以移动点来调整垂直于曲线的直线。
当用户认为这是应该的方式时,可以使用 matplotlib 导出图表。
当仅使用以下代码在点之间绘制时:
x_values = [tangent.point1.x, tangent.point2.x]
y_values = [tangent.point1.y, tangent.point2.y]
plt.plot(x_values, y_values, scalex=False, scaley=False)
尽管我希望线条一直延伸到绘图的边界,因为如果用户设置的两个点本身不相交。
我试过将这两个点转换成一个方程,并从那里计算出两个点但没有运气(直线)。 还尝试使用 np.linspace(xMin, xMax, 100) 产生指数曲线。
问题/TLDR:有没有办法通过点画线(不确定因为我在 plt.plot 中将 scalex 和 scaley 设置为 false)
编辑:
我在另一篇文章中遇到过 ax.axline(p1, p2)。 这绘制了一条无限线,但没有 scalex 和 scaley 属性。 这篇文章还提到了将 plt.axes() 存储在变量中并在绘图后将它们应用为 xlim 和 ylim。 这导致线条不可见??? 我的意思是将这些点打印到控制台。 我可以看到这条线应该在图中的什么位置,只是不在那里。
编辑 2:我很愚蠢,axline 中的 p1 是 p1.x 和 p2.x 而不是 p1.x 和 p1.y。 这通过不越界并再次可见来解决。
要绘制无限线,可以使用以下方法之一(也可以使用其他选项)
plt.axlines((x1,y1), (x2,y2))
ax.axlines((x1, y1),(x2, y2))
将两个点都放在边界内会将线延伸到边界框的边缘。
如果点在边界框之外,边界框将相应地缩放以适应框中的指定点
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.