You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ax.vlines绘制的竖线触达图表上下边界?

让ax.vlines绘制的竖线触达图表上下边界的解决方案

嘿,我明白你的需求——想用ax.vlines画出像axvline那样从图表顶部延伸到底部的竖线对吧?其实问题很简单:axvline会自动使用当前坐标轴的y轴范围来确定竖线的上下端点,但ax.vlines默认需要你手动指定ymin和ymax参数。

我们可以通过ax.get_ylim()获取当前图表的y轴上下限,把这两个值传给ax.vlines的对应参数,这样竖线就能自动铺满整个y轴范围了。结合你的示例代码,修改后的完整实现如下:

import pandas as pd
import matplotlib.pyplot as plt

# 创建示例数据
df = pd.DataFrame({
    'time': [pd.to_datetime('2016-01-02'), pd.to_datetime('2016-01-03'), pd.to_datetime('2016-01-04')],
    'value1': [1, 2, 3],
    'value2': [10, 20, 30]
})
df.set_index('time', inplace=True)

# 绘制折线图
fig, ax = plt.subplots()
df.plot(ax=ax)

# 获取当前y轴的上下限
y_min, y_max = ax.get_ylim()

# 使用ax.vlines绘制触达边界的竖线,这里以2016-01-03为例
ax.vlines(x=pd.to_datetime('2016-01-03'), ymin=y_min, ymax=y_max, color='red', linestyle='--')

plt.show()

如果之后你手动调整了图表的y轴范围(比如缩放或者用ax.set_ylim()修改),记得重新获取y_min和y_max再绘制竖线,或者在调整完轴范围后更新ax.vlines的参数,这样竖线就能始终贴合最新的上下边界啦。

内容的提问来源于stack exchange,提问作者ℕʘʘḆḽḘ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:43:30