ScottPlot 4.1的新增功能

2021年5月SCOTTRAP 4.1替换SCOTTRAP 4。本页总结了从ScottPlot 4.0和4.1升级时可能遇到的主要新功能和更改。ScottPlot Cookbook是如何使用最新功能的优秀文档来源。

主要新功能

  • 支持多个X轴和Y轴
  • 轴、刻度和网格的大量新自定义选项
  • 无状态渲染可提高性能和线程安全性
  • 用户控件的简化通用配置模块
  • 支持不阻塞UI线程的呈现请求
  • 改进的事件处理,允许自定义用户控件

添加绘图表的方法具有新名称

方法现在从单词开始Add。这与自定义绘图表可以实例化并传递到Plot.Add(),这也使得Plot.Clear()存在。

var plt = new ScottPlot.Plot();

// ScottPlot 4.0
plt.PlotBar()
plt.PlotSignal()
plt.PlotScatter()

// ScottPlot 4.1
plt.AddBar()
plt.AddSignal()
plt.AddScatter()

改进了绘图表的命名

绘图仪现在位于ScottPlot.Plottable命名空间,并可能已重命名以提高可读性。公共字段和方法已被重命名并大写,以使其更易于发现和使用。

// ScottPlot 4.0
var old = new ScottPlot.PlottableBar();
old.fillColor = Color.Red;
old.lineWidth = 3;

// ScottPlot 4.1
var new = new ScottPlot.Plottable.BarPlot();
new.FillColor = Color.Red;
new.LineWidth = 3;

轴操纵

设置和获取轴限制更为精确。

// ScottPlot 4.0
plt.Axis(x1: -10, x2: 10);
double[] oldLimits = plt.Axis();
Console.WriteLine($"horizontal from {oldLimits[0]} to {oldLimits[1]}");

// ScottPlot 4.1
plt.SetAxisLimits(xMin: -10, xMax: 10);
AxisLimits newLimits = plt.GetAxisLimits();
Console.WriteLine($"horizontal from {newLimits.XMin} to {newLimits.XMax}");

轴样式

带有数十个可选参数的配置方法已被单独的axis对象和较小的方法所取代。

// ScottPlot 4.0
plt.Ticks(dateTimeX: true, xTickRotation: 45);

// ScottPlot 4.1
plt.XAxis.DateTimeFormat(enable: true);
plt.XAxis.TickLabelStyle(rotation: 45);

修改绘图表中的数据

为了减少意外将绘图仪数据置于不良状态的可能性,大多数绘图仪现在都具有公共Update()替换数据阵列的方法。

// ScottPlot 4.0
var old = plt.PlotScatter(xs, ys);
old.xs = newXs;
old.ys = newYs;

// ScottPlot 4.1
var new = plt.AddScatter(xs, ys);
new.Update(newXs, newYs);

用户控制配置

所有控件现在共享一个公共Configuration使用公共字段和方法初始化,这些字段和方法替换以前在Configure()方法

// ScottPlot 4.0
formsPlot1.Configure(enableScrollWheelZoom: true);

// ScottPlot 4.1
formsPlot1.Configuration.ScrollWheelZoom = true;