多点

A.多点是包含多个绘图的单个图像。

静态图像多点

  • 要创建具有多个打印的单个图像,请将每个打印渲染为Bitmap,然后渲染每个Bitmap在一个大的图像上。
// render subplot A as a Bitmap
var plt1 = new ScottPlot.Plot(300, 250);
plt1.AddSignal(ScottPlot.DataGen.Sin(51));
plt1.Title("Subplot A");
System.Drawing.Bitmap bmp1 = plt1.Render();

// render subplot B as a Bitmap
var plt2 = new ScottPlot.Plot(300, 250);
plt2.AddSignal(ScottPlot.DataGen.Cos(51));
plt2.Title("Subplot B");
System.Drawing.Bitmap bmp2 = plt2.Render();

// combine Bitmaps into one large Bitmap
using (var bmp = new System.Drawing.Bitmap(600, 250))
using (var gfx = System.Drawing.Graphics.FromImage(bmp))
{
    gfx.DrawImage(bmp1, 0, 0);
    gfx.DrawImage(bmp2, 300, 0);
    bmp.Save("MultiPlot.bmp");
}

用户控制多点

  • 要创建包含多个绘图的窗口,请向绘图中添加多个用户控件。例如,一个带有4个绘图的WinForms应用程序可以通过添加4个绘图来实现FormsPlot控件添加到窗体中。

  • 要在多个绘图之间连接轴(因此平移一个子绘图会平移所有绘图),请使用OnAxesChanged事件,以便在一个控件的轴发生更改时更新所有控件的轴。该技术将在上进一步描述共享轴常见问题页面.

过时的多点类

ScottPlot的传统版本有很多优点MultiPlot类,该类可以加载多个Plot网格布局中的对象。当请求渲染时MultiPlot每个Plot作为一个Bitmap然后将所有图像缝合在一起,形成一个大图像。此方法与上面描述的方法相同,它只是打包到一个类中。这种设计的问题在于:(1)它只支持网格布局;(2)它的行为与用户控件差异太大,以至于经常让用户感到困惑。由于这些原因,MultiPlot模块已被弃用,用户需要使用上述方法实现自己的多点打印安排。

看见https://github.com/ScottPlot/ScottPlot/discussions/1280有关如何在没有MultiPlot单元