C#中科学绘图库ScottPlot的使用详解
作者:微小冷
安装和准备
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(); }
其中,xs是从0到10均等间隔的1000 10001000个数,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); }
效果如下
到此这篇关于C#中科学绘图库ScottPlot的使用详解的文章就介绍到这了,更多相关C#科学绘图库ScottPlot内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!