文章目录
- 安装和准备
- 初步使用
- 简单的设置
安装和准备
ScottPlot是基于.Net的一款开源免费的交互式可视化库,支持Winform和WPF等UI框架,本文示例在WPF环境中运行。在VS的菜单栏->工具->NuGet包管理器->管理解决方案的NuGet程序包->在浏览选项卡的搜索框里输入ScottPlot,找到ScottPlot.WPF,然后安装。
为了演示ScottPlot.WPF的基本功能,做如下布局,其中WrapPanel用于防止控制按钮,名为ScottPlot的集装箱用于防止ScottPlot的绘图组件
<TabControl TabStripPlacement="Left">
<TabItem Header="科学绘图">
<DockPanel LastChildFill="True">
<WrapPanel DockPanel.Dock="Right">
</WrapPanel>
<GroupBox Header="ScottPlot">
</GroupBox>
</DockPanel>
</TabItem>
</TabControl>
其中,TabStripPlacement属性指定选项卡选项卡条位置为左侧。TabItem是TabControl中的一个选项卡,Header属性指定了选项卡标题为“科学绘图”。DockPanel是一个布局控件,LastChildFill属性指定了最后一个子元素(即GroupBox)填充剩余空间。WrapPanel是另一个布局控件,DockPanel.Dock属性指定了它位于DockPanel的右侧。GroupBox是一个带有标题和边框的容器控件,Header属性指定了它的标题为“ScottPlot”。
初步使用
为了使用ScottPlot,首先在xaml的Window标签中,添加
xmlns:ScottPlot="clr-namespace:ScottPlot;assembly=ScottPlot.WPF"
在GroupPanel中添加
<ScottPlot:WpfPlot x:Name="plt" />
然后在WrapPanel中添加一个按钮,其点击事件的内容为
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();
plt.Plot.AddScatter(xs, ys);
plt.Refresh();
}
其中, x s xs xs是从 0 0 0到 10 10 10均等间隔的 1000 1000 1000个数, y = sin x y=\sin x y=sinx。
则点击按钮之后,执行plt.Plot.AddScatter命令,并调用Refresh刷新图形,可以得到
鼠标点击之后可以拖动,触摸板双指放大,双击之后会显示渲染时长。此外,右键菜单提供了保存图像、复制图像、缩放到合适尺寸,以及在新窗口打开等功能。
简单的设置
新建一组输入框和按钮,按钮的点击事件如下,当点击按钮时,可将图像的标题、X与Y轴的内容设置为输入框中的文本
private void btnSet_Click(object sender, RoutedEventArgs e)
{
plt.Plot.Title(tbTitle.Text);
plt.Plot.XLabel(tbAxisX.Text);
plt.Plot.YLabel(tbAxisY.Text);
}
效果如下