C#小结:ScottPlot 5.0在VS2022桌面开发的应用(以winform为例)

news/2024/5/19 22:42:17 标签: c#, 开发语言, windows, .netcore, asp.net

目录

一、官网文档地址 

二、在VS2022中安装Scottplot

三、拖动Scottplot

四、使用Scottplot

五、效果图

一、官网文档地址 

官网地址:ScottPlot 5.0 食谱

本文内容来自于官网,选取了官网的一些比较好用的功能展示,如需学习更多功能,请访问以上的官网链接。谢谢。 

二、在VS2022中安装Scottplot

由于我用的是winforms,所以下载下图红框框winforms版本的(此时我的VS2022框架是.NET6,如果你是.NET7以上,应该安装下图所示的第一个)

三、拖动Scottplot

下载成功后工具箱会自动更新该控件,我们此时可以创建一个窗体,点击视图-工具箱,找到下图红框的这个控件并且拖动进去

四、使用Scottplot

分别演示柱折线图、柱状图、饼图的应用

//以下是一个代码示例

private void Form3_Load(object sender, EventArgs e)

 {

//一、折线图

     var plot1 = formsPlot1.Plot;

     double[] xs = { 1,2,3};

     double[] ys = { 1, 4, 9 };

     var style1 = plot1.Add.Scatter(xs, ys);

     style1.Color = Colors.Green.WithOpacity(.2);//绿色,透明度0.2

     style1.LineWidth = 5;//线宽5

     style1.MarkerSize = 15; //标记点大小是15

     style1.Label = "Scatter Plot"; // 添加图例

     plot1.Style.SetFont("宋体");//设置宋体字样

     plot1.Title("Title我是中文");

     plot1.Add.Text("人为标记点",1,1);

     plot1.HideGrid();//隐藏网格线

     plot1.XLabel("x");

     plot1.YLabel("y");

     plot1.ShowLegend();//展示图例

     plot1.Axes.SetLimits(-5, 10, -3, 12);//x轴范围-5到10,y轴范围-3,12

     //plot1.SavePng("C:\\Users\\ASUS\\Pictures\\Saved Pictures\\abc.png", 400, 300);//保存图片

     //Tick[] ticks1 =

     //{

     //    new(1, "Group 1"),//x轴位置设置标签

     //    new(2, "Group 2"),

     //    new(3, "Group 3"),

     //};

     //plot1.Axes.Bottom.TickGenerator = new ScottPlot.TickGenerators.NumericManual(ticks1);//x轴位置设置标签

     //plot1.Axes.Margins(bottom: 0);//柱形图贴着X轴



//二、柱状图

     var plot2 = formsPlot2.Plot;

     //double[] values = { 5, 10, 7, 13 };

     //var style2 = plot2.Add.Bars(values);

     ScottPlot.Bar[] bars =

     {

         new() { Position = 1, Value = 5, ValueBase = 3, FillColor = Colors.Red },

         new() { Position = 2, Value = 7, ValueBase = 0, FillColor = Colors.Blue },

         new() { Position = 4, Value = 3, ValueBase = 2, FillColor = Colors.Green },

     };

     plot2.Add.Bars(bars);

     Tick[] ticks =

     {

         new(1, "Group 1"),//x轴位置设置标签

         new(2, "Group 2"),

         new(4, "Group 3"),

     };

     plot2.Axes.Bottom.TickGenerator = new ScottPlot.TickGenerators.NumericManual(ticks);//x轴位置设置标签

     plot2.Axes.Margins(bottom: 0);//柱形图贴着X轴


//三、饼图
     var plot3 = formsPlot3.Plot;

     PieSlice slice1 = new() { Value = 5, FillColor = Colors.Red, Label = "Red"};

     PieSlice slice2 = new() { Value = 2, FillColor = Colors.Orange, Label = "Orange" };

     PieSlice slice3 = new() { Value = 8, FillColor = Colors.Gold, Label = "Yellow" };

     PieSlice slice4 = new() { Value = 4, FillColor = Colors.Green, Label = "Green" };

     PieSlice slice5 = new() { Value = 8, FillColor = Colors.Blue, Label = "Blue" };

     List<PieSlice> slices = new() { slice1, slice2, slice3, slice4, slice5 };

     // 将饼图的数据添加到 plot3 中,并设置一些显示选项

     var pie = plot3.Add.Pie(slices);

     pie.ExplodeFraction = .1; // 设置饼图中的某个扇形稍微偏离饼图中心

     pie.ShowSliceLabels = true; // 显示扇形标签

     pie.SliceLabelDistance = 1.1; // 设置扇形标签的距离

     plot3.ShowLegend();//展示图例

 }

五、效果图


http://www.niftyadmin.cn/n/5362465.html

相关文章

探索网络定位与连接:域名和端口的关键角色

目录 域名 域名的作用 域名的结构 域名的解析配置 父域名、子域名​编辑 https的作用 端口 图解端口 端口怎么用 判断网站是否存活 端口的作用 域名 域名是互联网上用于标识网站的一种易于记忆的地址。 域名是互联网基础架构的一个重要组成部分&#xff0c;它为网…

使用 git 将本地文件上传到 gitee 远程仓库中,推送失败

项目场景&#xff1a; 背景&#xff1a; 使用 git 想要push 本地文件 到 另一个远程仓库&#xff0c;执行 git push origin master后此时报错 问题描述 问题&#xff1a; git push 本地文件 到 另一个远程仓库时&#xff0c;运行 git push origin master ,push文件失败&…

ElasticSearch8升级变化

ElasticSearch8升级变化 重大变化 Elasticsearch 8.0 中的以下更改可能会影响您的应用程序并阻止它们正常运行。在升级到 8.0 之前&#xff0c;请查看这些更改并采取所述步骤来减轻影响。 集群和节点设置更改 https://www.elastic.co/cloud/elasticsearch-service/signup?…

Qt程序设计-U盘检测(Linux系统)

本文讲解Qt中的U盘检测适用于Linux系统。 概述 监听U盘的插入和拔出,需要使用QFileSystemWatcher类。 QFileSystemWatcher类 QFileSystemWatcher类用于提供监视文件和目录修改的接口。通过监控指定路径的列表,监视文件系统中文件和目录的变更。 常用函数 bool addPath(…

Android Camera2 API 后台服务

最近在搞CameraAPP需要将Camera2弄成一个后台服务&#xff0c;发现跟预览的Activity没多大变动只是加了Service&#xff0c;和一些简单的修改。之前的公司也用到Camera2&#xff0c;发现用到的时候还是蛮多的所以记录一下&#xff0c;代码在文章末尾 camera2的结构如下&#x…

深度学习入门笔记(八)实战经验

前面几节介绍了很多理论,难免会好奇:理论如何与实战结合呢? 本节我们就穿插一点实战经验,来换换脑子~ 1. 显卡warmup 进行深度学习训练和推理时,往往第一次运行的耗时比较高,这是因为显卡需要warm-up,就是“热身”,才能发挥出显卡的性能。 关于热身,个人理解,显卡…

leetcode-top100数组专题下

第一题&#xff1a;48.旋转图像 题目链接 48. 旋转图像 - 力扣&#xff08;LeetCode&#xff09; 解题思路 辅助数组 首先我们分析位置关系 matrix_new[j][n - i - 1] matrix[i][j] 如果我们使用一个辅助数组 class Solution:def rotate(self, matrix: List[List[int]…

docker入门问题三

1. 如何进入正在运行的Docker容器&#xff1f; 进入正在运行的Docker容器通常是为了进行调试、查看容器内部状态或执行某些交互式操作。以下是进入Docker容器的步骤&#xff1a; 首先&#xff0c;使用docker ps命令查看当前正在运行的容器列表&#xff0c;获取目标容器的ID或…