Matplotlib中如何绘制数据点到对应坐标轴的连接线?
最简单实现方案
直接用你提到的plt.vlines/plt.hlines即可实现,无需额外引入其他方法:
- 连接数据点到x轴:调用
plt.vlines()指定x为点的x坐标,y轴范围从x轴坐标位置到点的y坐标即可 - 连接数据点到y轴:调用
plt.hlines()指定y为点的y坐标,x轴范围从y轴坐标位置到点的x坐标即可
基础使用示例
假设要给坐标为(2, 5)的数据点绘制到坐标轴的连接线,代码如下:
import matplotlib.pyplot as plt # 定义目标数据点 x, y = 2, 5 # 绘制原始数据点,zorder设高避免被连线遮挡 plt.scatter(x, y, c='red', s=60, zorder=10) # 绘制到x轴的垂直线段 plt.vlines(x=x, ymin=0, ymax=y, color='gray', linestyle='--') # 绘制到y轴的水平线段 plt.hlines(y=y, xmin=0, xmax=x, color='gray', linestyle='--') # 配置坐标轴范围 plt.xlim(0, 6) plt.ylim(0, 6) plt.show()
如果你的坐标轴起始值不是0,需要自动适配当前轴边界,可以直接读取当前轴的范围值来设置端点:
ax = plt.gca() # 连接到当前x轴的下边界 plt.vlines(x=x, ymin=ax.get_ylim()[0], ymax=y, color='gray', linestyle='--') # 连接到当前y轴的左边界 plt.hlines(y=y, xmin=ax.get_xlim()[0], xmax=x, color='gray', linestyle='--')
内容的提问来源于stack exchange,提问作者Thrastylon
相关产品推荐
相关产品推荐

