Python调用mdt绘制正弦函数出现空白图形问题求助
解决正弦函数绘图空白问题
问题根源
你的代码出现空白图形主要有三个原因:
- 没有调用
plt.show()触发图形显示 mdt.dataRead返回的是二维数组(形状为(通道数, 采样点数)),直接传入plt.plot会导致绘图逻辑异常- 定义了无用的
z变量却没有生成匹配数据的时间轴
修复步骤
- 提取一维数据:从返回的二维数组中取出通道0的采样数据
- 生成正确的时间轴:根据采样率和时长创建对应每个数据点的时间数组
- 添加图形显示命令:调用
plt.show()让matplotlib渲染并显示图形 - 可选优化:添加坐标轴标签和标题,让图形更易读
修复后的完整代码
import numpy as np import matplotlib.pyplot as plt import mdt # 获取数据 data = mdt.dataRead( amplitude=5, samplingRate=48, duration=10, channels=[0], resolution=14, outType='Volt', continues=False ) # 提取通道0的一维数据 data_1d = data[0, :] # 生成匹配的时间轴 t = np.arange(0, 10, 1/48) # 绘图 plt.plot(t, data_1d) plt.xlabel('时间 (s)') plt.ylabel('电压 (V)') plt.title('50Hz正弦波采样数据') plt.show()
关键修改说明
data_1d = data[0, :]:把二维数组转成一维,确保plt.plot能正确识别为单条曲线t = np.arange(0, 10, 1/48):生成从0到10秒、步长为采样周期的时间数组,让x轴对应实际时间plt.show():强制matplotlib弹出图形窗口显示绘制结果
内容的提问来源于stack exchange,提问作者Amrou
相关产品推荐
相关产品推荐

