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

Python共享X轴多子图出现额外直线,如何移除该多余线条?

压力变量图额外直线问题

共享X轴子图中压力变量出现额外直线问题

我用Python创建了4个共享X轴的子图,遇到一个问题:压力变量的图上多了一条额外直线,看起来是从导入数据的最后一条读数延伸出来的。我原本只期望显示单条数据线条,现在除了实际数据线条外,这条多余的直线怎么都去不掉,附上我认为可能相关的代码,求帮忙排查原因并解决。

# Convert 'Date and Time' column to datetime
df['Date and Time'] = pd.to_datetime(df['Date and Time'])

# Set 'Date and Time' column as the index
df.set_index('Date and Time', inplace=True)

# Create a figure and a set of subplots with shared x-axis
fig, ax1 = plt.subplots(figsize=(12, 6))
# Set x-axis limits
# Set x-axis limits
start_date = pd.to_datetime('2024-04-19')
end_date = pd.to_datetime('2024-05-01')  # Adjust the end date here
ax1.set_xlim(start_date, end_date)  # Set the x-axis limits to the desired range

# Generate x-axis ticks at 3-day intervals
date_range = pd.date_range(start=start_date, end=end_date, freq='3D')
ax1.set_xticks(date_range)

# Format x-axis labels to show date only
ax1.xaxis.set_major_formatter(plt.matplotlib.dates.DateFormatter("%Y-%m-%d"))

可能的解决方向

  • 先筛选数据再绘图:如果数据最后一行的日期超出了end_date范围,设置x轴限制时会强制把最后一个数据点和x轴末端连线,导致出现额外直线。可以先把数据限定在目标日期区间内:
    # 筛选指定日期范围内的数据
    df_filtered = df.loc[start_date:end_date]
    # 使用筛选后的数据绘制压力曲线
    df_filtered['Pressure'].plot(ax=ax1)
    
  • 检查绘图代码是否重复调用:如果多次对同一轴执行plot方法,会叠加绘制线条,确认只调用一次压力数据的绘图逻辑。
  • 排查数据异常:用df.tail()查看最后几行数据,确认是否存在空值、重复行或异常数值,这类问题也可能导致连线异常。

内容的提问来源于stack exchange,提问作者Kenny Hignett

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:47:15