matplotlib 在pyplot中绘制坐标线

ego6inou  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(90)

我有一个散点图。我想为每个点绘制坐标线,从X到Y,就像我们以前在学校做的那样。
见下图作为参考。

我最终使用了“grid()”属性,但这并不是我想要的。
我还尝试使用“axhline”和“axvline”传递xmin,xmax和ymin,ymax,但它不起作用。它跨越了整个情节的一条线。
祝你今天愉快!

pcww981p

pcww981p1#

您可以使用vlines绘制垂直线,使用hlines绘制水平线。这些函数与axvlineaxhline不同,因为这些函数取0到1之间的值,而vlineshlines在数据坐标中工作。我将vlines作为ymin传递给y.min(),这样它就不会太低,我将hlines作为xmin传递给x.min(),这样它就不会太靠左。我还调整了散点图的zorder,使线位于点的后面。

import numpy as np
import matplotlib.pyplot as plt

plt.close("all")

rng = np.random.default_rng(42)
x = np.arange(2009, 2024)
y = rng.random(x.size)*13

fig, ax = plt.subplots()
ax.scatter(x, y, zorder=3)
ax.vlines(x, y.min(), y, color="r", linewidth=0.5)
ax.hlines(y, x.min(), x, color="r", linewidth=0.5)
fig.show()

相关问题