ScottPlot:功能强大且开源免费的C#绘图控件
概述
ScottPlot是可以用于交互显示大数据集合的一个免费开源的.NET绘图控件类库,只需要用几行代码,就可以画出各种曲线,条形图,饼图,散点图等等。
快速开始
在各个C#的开发框架ScottPlot的快速开始代码如下:
Windows Forms
Step 1: 安装ScottPlot.WinForms NuGet package
Step 2: 从工具箱拖拽出FormsPlot到Form窗体
Step 3: 绘制简单的曲线
double[] xs = { 1, 2, 3, 4, 5 };
double[] ys = { 1, 4, 9, 16, 25 };
var plt = new ScottPlot.Plot(400, 300);
plt.AddScatter(xs, ys);
plt.SaveFig(quickstart.png); //将绘图保存为png图片
WPF
Step 1: 安装ScottPlot.WPF NuGet package
Step 2: 添加一个WpfPlot到layout并取一个名字
WpfPlot Name=WpfPlot1 /
Step 3: 绘制简单的曲线
double[] dataX = new double[] { 1, 2, 3, 4, 5 };
double[] dataY = new double[] { 1, 4, 9, 16, 25 };
WpfPlot1.Plot.AddScatter(dataX, dataY);
WpfPlot1.Refresh();
Avalonia
Step 1: 安装ScottPlot.Avalonia NuGet package. Linux MacOS需要做以下操作:
- Step 1.1: 安装libgdiplus
Linux: apt-get install -y libgdiplus
MacOS: brew install mono-libgdiplus
- Step 1.2: 通过命令手动添加System.Drawing.Common包到工程中
dotnet add package System.Drawing.Common
- Step 1.3: 根据微软的建议执行并编辑将 runtimeconfig.json 文件中的 System.Drawing.EnableUnixSupportSystem.Drawing.EnableUnixSupport设置为 true 来启用对 .NET 6 中非 Windows 平台的支持:
{
configProperties: {
System.Drawing.EnableUnixSupport: true
}
}
Step 2: 导入ScottPlot.Avalonia命名空间:
Window xmlns=https://github.com/avaloniaui
!-- More attributes --
x:Class=ScottPlot.Demo.Avalonia.MainWindow
xmlns:ScottPlot=clr-namespace:ScottPlot.Avalonia;assembly=ScottPlot.Avalonia
Title=Avalonia Quickstart Width=500 Height=350
Step 3: 添加一个AvaPlot到layout并起一个名字
ScottPlot:AvaPlot Name=AvaPlot1/
Step 4: 绘制简单的曲线
double[] dataX = new double[] { 1, 2, 3, 4, 5 };
double[] dataY = new double[] { 1, 4, 9, 16, 25 };
AvaPlot avaPlot1 = this.FindAvaPlot(AvaPlot1);
avaPlot1.Plot.AddScatter(dataX, dataY);
avaPlot1.Refresh();
控制台应用程序
在C#的控制台程序中,使用ScottPlot可以有两种方法绘图:一是通过保存图片的方式,前文已经讲解如何使用几行代码将绘制的曲线保存为图片,这里就不再介绍;二是通过弹出交互的窗口来绘制和显示。
–Step1:安装ScottPlot.WinForms
- Step2:创建一个绘图(和前文一样)
- Step3:用创建的Plot初始化一个PlotViewer并显示,代码如下:
double[] dataX = new double[] { 1, 2, 3, 4, 5 };
double[] dataY = new double[] { 1, 4, 9, 16, 25 };
var plt = new ScottPlot.Plot(400, 300);
plt.AddScatter(dataX, dataY);
new ScottPlot.FormsPlotViewer(plt).ShowDialog();
Cookbook和Demo
ScottPlot Cookbook
ScottPlot Cookbook演示了如何使用几行代码创建折线图、条形图、饼图、散点图等。
链接如下:https://scottplot.net/cookbook
Demo
ScottPlot Demo是将很多示例代码都集合在一个可以直接点击并执行的应用程序中,每个样例都展示了一种绘图的代码。主要包括下图所示的相关图形的案例。
下载链接:https://scottplot.net/demo/
运行界面如下图:
云端绘制
ScottPlot不需要GUI,因此可以用于在云应用程序中创建绘图。下面的图像是使用Azure函数每小时重新生成的,以更新GitHub API中的star指标,并从NuGet API下载计数。数据用ScottPlot绘制,并保存为blob存储器中的图像文件。
相关文章
- Sylvan.Data.Excel 性能优异的开源.NET Excel数据读取库
- .NET 开源 ORM FreeSql 使用教程
- GitHub上开源许可证License含义说明
- LinkWeChat开源系统
- DynamoDB 数据转换安全性:从手动工作到自动化和开源
- 基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体基础
- 开源软件:释放创新的力量,改变数字世界的游戏规则
- 面向设计师、开发者的开源免费图标库
- 免费开源的开发工具DevToys
- 免费开源的远程桌面软件RustDesk官网下载
- 开源中文LLaMA2模型 Chinese-Llama-2-7b
- 开源去马赛克工具Depix用法
- 开源远程支持软件RustDesk官网下载
- 基于Vue的免费开源admin管理后台框架
- .Net开源框架列表
- 免费开源WinForm UI控件库ReaLTaiizor
- VSCode开源吗?可以基于VSCode开发商业IDE吗?
- 有哪些C/C++的开源项目可以给系统的学习C/C++语言做参考呢?
- 开源的Web前端项目Nue JS用法
- Zephyr 开源的实时操作系统