ScottPlot切换热力图与时间序列后AxisAuto()不更新轴范围问题
ScottPlot切换视图轴缩放异常修复
问题原因
绘制热力图后,轴的缩放状态、范围配置会残留,Clear()仅清除绘图对象,不会重置轴的核心设置,导致后续切换时间序列时AxisAuto()无法正确适配全部数据点。
修复方案
在切换时间序列视图时,先重置轴的所有状态,再调用自动适配,并使用ScottPlot原生渲染方法确保更新:
修改后的代码
private void PlotHeatMap() { plt.Clear(); var hm = plt.AddHeatmap(kWArray, ScottPlot.Drawing.Colormap.Turbo); hm.FlipVertically = true; // 让午夜显示在底部 plt.AddColorbar(hm); formsPlot1.Render(); // 使用ScottPlot自带渲染方法 } private void PlotTimeSeries() { plt.Clear(); plt.AddSignal(kWVector); plt.ResetAxes(); // 重置轴到默认状态,清除热力图残留配置 plt.AxisAuto(); // 自动适配数据范围 // 若自动适配仍有问题,可显式指定X轴范围: // plt.SetAxisLimitsX(0, kWVector.Length); formsPlot1.Render(); }
关键说明
ResetAxes():彻底重置轴的范围、缩放模式、标签等所有配置,避免热力图的轴设置干扰时间序列formsPlot1.Render():替代WinForms的Refresh(),确保ScottPlot控件正确渲染最新的绘图内容- 显式设置X轴范围:如果自动适配仍失效,直接指定X轴从0到数据长度,强制显示全部3000个点
内容的提问来源于stack exchange,提问作者PowerSystemsDev
相关产品推荐
相关产品推荐

