Matplotlib绘制信号异常:未显示波形仅呈现随机线条求技术支持
解决Matplotlib绘制信号波形显示乱线的问题
核心问题排查与解决方案
x轴数据未排序:从数据预览来看,你的x轴(第一列)数据大概率存在乱序情况。Matplotlib绘制折线图时会严格按照数据的原始顺序连接坐标点,若x轴数值不是连续递增/递减排列,就会出现来回跳转的“随机线条”。
修复代码:# 按第一列(x轴)排序数据 file = file.sort_values(by=file.columns[0])数据类型异常:检查第一列和信号列的类型,若存在字符串、空值或非数值格式,会直接导致绘图逻辑异常。
修复代码:# 强制转换所有列为数值类型,非法值转为NaN file = file.apply(pd.to_numeric, errors='coerce') # 删除包含空值的行 file = file.dropna()子图布局优化:你创建了4行2列的子图网格,但仅绘制了4个图,剩余空图可能挤压显示空间,添加布局调整代码可优化显示效果:
plt.tight_layout() plt.show()
修改后的完整代码示例
import pandas as pd import matplotlib.pyplot as plt file = pd.read_csv('/content/signals.csv', skiprows=1) file = file.iloc[:, [0,4,5,6,7,8,9,10,11,12,13,14,15,16,17]] # 数据预处理 file = file.apply(pd.to_numeric, errors='coerce').dropna() file = file.sort_values(by=file.columns[0]) # 绘图 fig, axs = plt.subplots(nrows=4, ncols=2) fig.suptitle('Display Signals') axs[0,0].plot(file.iloc[:, 0], file.iloc[:, 1]) axs[1,0].plot(file.iloc[:, 0], file.iloc[:, 14]) axs[0,1].plot(file.iloc[:, 0], file.iloc[:, 5]) axs[1,1].plot(file.iloc[:, 0], file.iloc[:, 10]) plt.tight_layout() plt.show()
数据预览

当前异常绘制结果

内容的提问来源于stack exchange,提问作者sindhu reddy
相关产品推荐
相关产品推荐

