网站开发项目挣钱吗,做a 免费网站,网站开发的研究背景,建设网站团队文章目录 示例移除图像图例信号图 scott系列#xff1a;绘图初步
示例
从名字就能看出#xff0c;ScottPlot的绘图函数AddScatter的作用是为图窗添加数据点#xff0c;换言之#xff0c;每调用一次AddScatter#xff0c;就可以在图窗中添加一组图像。下面添加两个按钮绘图初步
示例
从名字就能看出ScottPlot的绘图函数AddScatter的作用是为图窗添加数据点换言之每调用一次AddScatter就可以在图窗中添加一组图像。下面添加两个按钮分别用于绘制正弦和余弦图像其正弦按钮的响应函数如下
ScatterPlot sinPlot;
private void btnSin_Click(object sender, RoutedEventArgs e)
{var xs Enumerable.Range(0, 1000).Select(x x / 100.0).ToArray();var ys xs.Select(x Math.Sin(x)).ToArray();sinPlot plt.Plot.AddScatter(xs, ys);plt.Refresh();
}其中sinPlot被设为全局变量目的是方便后续用其他按钮来操纵函数图像。余弦图像的相应函数如出一辙只需把变量名以及 y s ys ys的生成过程更改一下效果如下 移除图像
移除图像只需调用Remove函数以移除正弦函数为例其相应动作如下
private void btnRmSin_Click(object sender, RoutedEventArgs e)
{plt.Plot.Remove(sinPlot);plt.Refresh();
}下面演示一下移除图像的效果顺便参悟一下弹出窗口的逻辑所谓弹出窗口就是把当前图窗中的图形作为一个对象复制一份然后这个对象将与旧图窗变成陌生人互不相干。 图例
若想在图窗中对两个图像做区分就需要指明图像的Label仍以正弦函数为例修改绘制按钮的点击函数当然余弦函数也做相似处理。
private void btnSin_Click(object sender, RoutedEventArgs e)
{var xs Enumerable.Range(0, 100).Select(x x / 10.0).ToArray();var ys xs.Select(x Math.Sin(x)).ToArray();sinPlot plt.Plot.AddScatter(xs, ys,label:sin);plt.Plot.Legend();plt.Refresh();
}由于前面 1000 1000 1000个点的绘制效果不太好看所以上面代码把点数控制在100个绘制结果如下 信号图
Scott支持把不同类型的图像在一个图窗中绘制例如可以同时绘制散点图和信号图示例如下
SignalPlot sigPlot;
private void btnSignal_Click(object sender, RoutedEventArgs e)
{double[] values DataGen.RandomWalk(1_000_000, 0.003, 0.5);sigPlot plt.Plot.AddSignal(values, sampleRate: 48_000);plt.Refresh();
}这个图像和前面的sinPlotcosPlot连数据类型都是不一致的不过很显然二者有相同的父类。下面是其绘图结果