如何绘制非均匀时间尺度的时间序列?解决微秒级数据可视化问题
针对时间跨度极端差异数据的可视化方案
1. 拆分面板分图展示
把数据按时间间隔拆成两组:前8条微秒级数据单独做一个子图,后续秒级数据做另一个子图。两个子图上下排列,共用纵轴(bid_size_1),各自适配对应的时间刻度。这样既能看清微秒级的细节波动,也能完整展示后续数据的整体趋势。
- 操作示例:用pandas切片拆分数据,
df_micro = df.iloc[:8]、df_seconds = df.iloc[8:],再用matplotlib的subplot分别绘图,子图标题标注清楚时间范围,比如“0-XX微秒区间”和“XX秒-XX秒区间”。
2. 时间轴断裂缩放
在同一图里给时间轴做断裂处理:微秒级区域用正常刻度展示细节,秒级区域跳过中间空白的时间区间,用双斜线这类断裂标记区分。这样一张图里就能同时呈现两种时间尺度的数据,不用拆分面板。
- 操作示例:用matplotlib的
brokenaxes库,指定断裂的位置和前后缩放比例,比如前半段x轴范围设为微秒级,后半段直接跳转到秒级,中间用断裂线隔开。
3. 事件序列图(按事件顺序展示)
如果核心是看bid_size_1随事件发生的变化,而非绝对时间间隔,直接把x轴换成事件索引(1、2…N),放弃原始时间轴。同时在第8个事件位置加垂直虚线和文本标注,说明前后时间尺度的差异,方便关联绝对时间信息。
- 操作示例:绘图时x轴用
df.index,用plt.axvline(x=7, linestyle='--', color='gray')添加分割线,再用plt.text(7, y_max, '前8条为微秒级间隔', ha='right')标注说明。
4. 交互式缩放图表
用Plotly或Bokeh这类交互式库生成图表,支持鼠标拖拽缩放、框选放大。用户可以自由放大微秒级区域看细节,缩小查看整体趋势,完全适配这种时间跨度差异极大的场景。
- 操作示例:用Plotly的
px.line(df, x='time', y='bid_size_1')生成折线图,默认就带缩放、平移功能,还能添加时间范围选择器快速切换查看不同时段。
内容的提问来源于stack exchange,提问作者IGottaLearnMath
相关产品推荐
相关产品推荐

