首页 程序笔记 ScottPlot:功能强大且开源免费的C#绘图控件

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存储器中的图像文件。

2

站心网

概述 ScottPlot是可以用于交互显示大数据集合的一个免费开源的.NET绘图控件类库,只需要用几行代码,就可以..

为您推荐

成功运作一个开源项目的 15 个要点

运作开源项目很容易。所有你需要做的就是让你的源代码可用和开源,对吧?嗯,也许。其实,开源项目是否成功取决于你对项目成功的定义。且不论你是怎么定义的,创建开源项目需要大量的工作。如果你已经有了目标,那么..

如何设计功能测试用例

最近招聘面试测试工程师,发现很多测试工程师都是半路出家,对一些基本的测试概念,思路与技术没有认知。在设计测试用例的时候只是基于直觉与经验去测试。这就导致测试用例的设计既不全面,也不科学。一般功能测试指..

NETworkManager 一个基于.NET的开源网络管理和问题排查工具

NETworkManager 是一个基于.NET开源(GPL-3.0 license)、免费、功能强大的开源工具,旨在帮助用户管理和解决网络问题。通过提供一系列网络连接和管理工具,NETworkManager 能够让用户轻松连接到远程系统,管理网络..

使用 html2canvas 实现截图功能

html2canvas 是一个开源的 JavaScript 库,用于将网页上的 HTML 元素渲染成图像。它通过遍历页面的 DOM 树和计算样式,然后将其绘制到 <canvas> 元素上,最终生成图片。该库不依赖服务器端,而是通过浏览器端的 Java..

基于Dapper的开源Lambda扩展,且支持分库分表自动生成实体之基础

LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼.文档地址:https://liningit.github.io/LnskyDB/开源地址:https://github.com/liningit/Ln..

BotSharp 基于 .NET 平台的开源 AI 聊天机器人框架

BotSharp 是一个开源的、基于 .NET 平台的 AI 聊天机器人框架,旨在简化构建智能对话系统的过程。它主要通过自然语言处理(NLP)技术,帮助开发者构建具备语言理解和对话能力的应用。BotSharp 提供了丰富的功能和扩..

C#使用 Attribute 实现 AOP 功能

在 C# 中,通过自定义 Attribute 并结合一些技术(如动态代理、反射等)可以实现 AOP(面向切面编程)。AOP 通常用于日志记录、性能监控、权限验证等横切关注点。以下是一个使用 C# Attribute 实现 AOP 功能的示例。..

小米开源智能家居平台 ha_xiaomi_home 使用示例

小米近期在 GitHub 上开源了名为“ha_xiaomi_home”的项目,即 Home Assistant 米家集成组件。该组件由小米官方支持,旨在让用户在 Home Assistant 中集成和控制小米 IoT 智能设备。主要特点:官方支持:..

.NET开源ORM FreeSql常见问题和解决方法

FreeSql 是一个功能强大的 .NET 开源 ORM(对象关系映射)工具,支持多种数据库类型并提供丰富的功能特性。以下是使用 FreeSql 过程中常见的问题及其解决方法:1. 数据库连接问题问题描述:无法连接数据库,报错提示..

分享5个开源的.NET Excel读写操作库

本文给大家分享 5 个开源的 .NET Excel 读写操作库,它们广泛用于处理 Excel 文件,包括读取、写入、导入和导出数据。1. EPPlus简介:EPPlus 是功能强大的 .NET 库,用于创建和读取 Excel 文件(.xlsx 和 .xlsm 格式..

Sylvan.Data.Excel 性能优异的开源.NET Excel数据读取库

Sylvan.Data.Excel是一个开源、免费、跨平台的.NET库,专注于读取和写入Excel数据文件。支持多种文件格式,并提供高效的数据访问和数据绑定功能。该库在.NET生态系统中是读取Excel数据文件的最快且内存分配最低的库..

.NET 开源 ORM FreeSql 使用教程

什么是 FreeSql?FreeSql 是一个高性能、灵活且易用的 .NET 开源 ORM(对象关系映射工具),提供数据库操作的强大功能,包括实体类映射、链式查询、表达式树支持、数据库迁移等。它可以帮助开发者快速、高效地操作数..

GitHub上开源许可证License含义说明

在 GitHub 上,开源许可证规定了其他人如何使用、修改和分发代码。以下是几种常见的开源许可证及其含义:MIT 许可证:MIT 许可证是非常宽松的许可证,允许任何人自由使用、复制、修改和分发代码。唯一的要求是保留原..

.NET 9 中System.Text.Json 的新增功能

在 .NET 9 中,System.Text.Json 进行了多个重要的更新和增强,进一步提升了 JSON 处理的性能、灵活性和易用性。以下是 .NET 9 中 System.Text.Json 的一些主要新增功能:1. 类型转换器 (Type Converters) 支持.NET ..

LinkWeChat开源系统

平台介绍LinkWeChat是一款基于企业微信的开源SCRM系统,为企业构建私域流量系统的综合解决方案,显著提升企业社交运营效率!内置功能环境部署准备工作JDK >= 1.8 (推荐1.8版本)Mysql >= 5.5.0 (推荐5.7版本)Redis >=..

开源的 WebGL 游戏引擎 PlayCanvas

PlayCanvas是一个开源的WebGL游戏引擎,它集成了UI、2D、3D以及一个在线编辑器,被Snapchat收购。PlayCanvas是一款集UI、2D、3D和编辑器于一体的游戏引擎,由Snapchat收购。它支持多种功能,包括单体模型展示、场景..

.NET 9 即将推出的功能Task.WhenEach

.NET 爱好者!我刚刚偶然发现了一个非常酷的新 PR,它被合并到 .NET 运行时存储库中,我想分享一个例子。希望您能为新的 .NET 版本大肆宣传!在即将到来的 .NET 9 版本中,我们预计会有一个名为 .它在这里让您的异步..

Swapy - 开源JavaScript js拖拽插件

Swapy是一个简单易用的JavaScript工具,能够将任何布局转换为拖拽交换布局。本文将详细介绍Swapy的功能、如何使用它,以及它在实际项目中的应用。什么是Swapy?Swapy是由TahaSh开发的一款开源JavaScript工具。它的核..

强大的 .NET Mock 框架 单元测试模拟库Moq使用教程

单元测试是确保代码质量和可靠性的重要手段。当我们的代码依赖于外部系统、数据库或第三方服务时,编写有效的单元测试可能会变得复杂且耗时。为了简化这一过程,模拟(Mocking)技术应运而生。在 .NET 生态系统中,M..

11款免费.NET开发工具

HTML5,jQuery,JavaScript等等这些热门技术,受到了开发者们的强烈追捧,有了这些开发工具也为开发者们减轻了许多负担。本文为开发者介绍了11款.NET框架,这些框架有很多优点,比如提供用户界面,数据访问,数据库..

发表回复

返回顶部