因此,我目前正在绘制一个散点图,其中包含matplotlib中的许多x
和y
:
plt.scatter(x, y)
我想在这个散点图上画一条线,它穿过整个图(即击中两个“边界”),我知道梯度和截距-m
和方程y = mx +c
中的c
我曾考虑过获取绘图的4个点(计算最小和最大散射x
和y
),并从中计算直线的最小和最大坐标,然后绘图,但这似乎非常复杂。有没有更好的方法来做到这一点,记住这条线甚至可能不在“绘图”中
如图中所示,四个边界坐标为:
-1,-2
-1,2
6,-2
6,2
我现在有一条线,我需要绘制,不能超过这些边界,但如果它进入绘图,必须接触两个边界点
所以当x=-1时,我可以检查y等于什么,然后检查该值是否在-1和6之间,如果是,那么直线必须穿过左边界,绘制它,依此类推
理想情况下,我会创建一条从无限到无限的直线,然后裁剪它以适合绘图
你可以尝试:
其中:
这里的想法是在图中画一条方程
y=m*x+y0
的线。这可以通过将最初在轴坐标中给出的水平线转换为数据坐标、根据直线方程应用仿射2D转换并转换回屏幕坐标来实现这里的优点是,您根本不需要知道轴的限制。您还可以自由缩放或平移绘图;该线将始终保持在轴边界内。因此,它有效地实现了从-infinity到+infinity的行
虽然这个解决方案乍一看有点复杂,但人们不需要完全理解它。只需将
axaline
函数复制到代码中并按原样使用即可为了使自动更新在不进行转换的情况下工作,可以添加回调,以便在每次绘图中发生更改时重置转换。
相关问题 更多 >
编程相关推荐