winforms 在AxisAuto()之后未更新Scottplot轴

gg0vcinb  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(443)

我正在使用ScottPlot在C#/WinForms应用程序中绘制一些数据。我需要在热图视图和时间序列视图之间切换,我使用单选按钮选择。如果我绘制时间序列视图 first,轴的比例正确,我可以看到所有的数据。但是如果我先绘制热图,然后切换到时间序列,则图被放大到仅显示3000个点中的约30个点。(热图始终正确显示。)我尝试使用AxisAuto()和SetAxisLimits()来重置轴,但似乎没有任何效果。

private void PlotHeatMap()
{
    plt.Clear();
    var hm = plt.AddHeatmap(kWArray, ScottPlot.Drawing.Colormap.Turbo);
    hm.FlipVertically = true; // So that midnight is at the bottom.
    var cb = plt.AddColorbar(hm);
    //plt.Margins(0, 0);
    formsPlot1.Refresh();
}

private void PlotTimeSeries()
{
    plt.Clear();        
    plt.AddSignal(kWVector);
    plt.AxisAuto();
    //plt.SetAxisLimits(0, 3000, 0, 8);
    formsPlot1.Refresh();
}

知道我哪里做错了吗

ymzxtsji

ymzxtsji1#

在开发人员的帮助下,我能够让它工作。问题是时间序列使用的是日期轴,而热图使用的是数值轴。因此,在绘制时间序列时,需要添加以下代码行:

timeFFTPlot.XAxis.DateTimeFormat(true);

在绘制热图时,您可以使用以下命令:

timeFFTPlot.XAxis.DateTimeFormat(false);

相关问题