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
相关产品推荐
相关产品推荐

