我找不到用 matplotlib
Python 库绘制任意线的方法。它允许绘制水平线和垂直线(使用 matplotlib.pyplot.axhline
和 matplotlib.pyplot.axvline
,例如),但我看不到如何通过两个给定点画一条线 (x1, y1)
和 (x2, y2)
。有办法吗?有简单的方法吗?
原文由 Alexey 发布,翻译遵循 CC BY-SA 4.0 许可协议
我找不到用 matplotlib
Python 库绘制任意线的方法。它允许绘制水平线和垂直线(使用 matplotlib.pyplot.axhline
和 matplotlib.pyplot.axvline
,例如),但我看不到如何通过两个给定点画一条线 (x1, y1)
和 (x2, y2)
。有办法吗?有简单的方法吗?
原文由 Alexey 发布,翻译遵循 CC BY-SA 4.0 许可协议
这将绘制一条穿过点 (-1, 1) 和 (12, 4) 的线,以及另一条穿过点 (1, 3) 和 (10, 2) 的线
x1 是第一行点的 x 坐标,y1 是第一行的 y 坐标——x1 和 y1 中的元素必须按顺序排列。
另一条线的 x2 和 y2 相同。
import matplotlib.pyplot as plt
x1, y1 = [-1, 12], [1, 4]
x2, y2 = [1, 10], [3, 2]
plt.plot(x1, y1, x2, y2, marker = 'o')
plt.show()
我建议您花一些时间阅读/学习在非常丰富的 matplotlib 网站上找到的基本教程,以熟悉该库。
[编辑]:
如 @thomaskeefe 所示,从 matplotlib 3.3 开始,为了方便起见,现在将其内置: plt.axline((x1, y1), (x2, y2))
,使以下内容过时。
没有直接的方法可以让线延伸到无穷大…… matplotlib 将调整绘图的大小/重新缩放,以便最远的点位于边界上,而另一个点位于内部,有效绘制线段;或者您必须选择要设置为可见的表面边界之外的点,并为 x 和 y 轴设置限制。
如下:
import matplotlib.pyplot as plt
x1, y1 = [-1, 12], [1, 10]
x2, y2 = [-1, 10], [3, -1]
plt.xlim(0, 8), plt.ylim(-2, 8)
plt.plot(x1, y1, x2, y2, marker = 'o')
plt.show()
原文由 Reblochon Masque 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
从 matplotlib 3.3 开始,您可以使用
plt.axline((x1, y1), (x2, y2))
执行此操作。