OxyPlot图表曲线图学习笔记(winform)

news2024/12/23 19:50:45

一、学习OxyPlot

开源地址:https://github.com/oxyplot/oxyplot
最新版:v2.1.2
新建winform,nuget中添加依赖包
在这里插入图片描述

二、写代码

2.1 BarSeries

在这里插入图片描述

2.2 ScatterSeries

在这里插入图片描述

2.3 LineSeries (带指向箭头)

在这里插入图片描述

int pointCount = 50;
double[] xs = Consecutive(pointCount);
double[] ys1 = RandomWalk(pointCount);
double[] ys2 = RandomWalk(pointCount);

// create lines and fill them with data points
var line1 = new OxyPlot.Series.LineSeries()
{
    Title = $"Series 1",
    Color = OxyPlot.OxyColors.Blue,
    StrokeThickness = 1,
};

var line2 = new OxyPlot.Series.LineSeries()
{
    Title = $"Series 2",
    Color = OxyPlot.OxyColors.Red,
    StrokeThickness = 1,
};

for (int i = 0; i < pointCount; i++)
{
    line1.Points.Add(new OxyPlot.DataPoint(xs[i], ys1[i]));
    line2.Points.Add(new OxyPlot.DataPoint(xs[i], ys2[i]));
}

// create the model and add the lines to it
var model = new OxyPlot.PlotModel
{
    Title = $"Line Plot ({pointCount:N0} points each)"
};
model.Series.Add(line1);
model.Series.Add(line2);

// load the model into the user control
plotView1.Model = model;

//箭头
var arrowAnnotation = new OxyPlot.Annotations.ArrowAnnotation
{
    StartPoint = new DataPoint(30, 30),
    EndPoint = new DataPoint(40, 30)
};
plotView1.Model.Annotations.Add(arrowAnnotation);
plotView1.Model.InvalidatePlot(true);//刷新绘图区域

2.4 LinearAxis(带提示线)

在这里插入图片描述

2.5 LineSeries(多实例)

在这里插入图片描述
在这里插入图片描述

2.6 柱状图(堆叠/排列)

在这里插入图片描述
在这里插入图片描述

2.7 相关参数注释(参考wpf)

      this.Axes = new ElementCollection(this);              //坐标轴集合;
      this.Series = new ElementCollection(this);            //线条集合;
      this.Annotations = new ElementCollection(this);       //注解;
      this.Legends = new ElementCollection(this);           //图例;
      this.PlotType = PlotType.XY;                          //坐标系类型;
      this.PlotMargins = new OxyThickness(double.NaN);    //外边距
      this.Padding = new OxyThickness(8);                 //内边距
      this.Background = OxyColors.Undefined;              //图表背景
      this.PlotAreaBackground = OxyColors.Undefined;      //图表区域背景
      this.TextColor = OxyColors.Black;                   //图表内的字体颜色(标题、图例、注解、坐标轴)
      this.TitleColor = OxyColors.Automatic;              //标题字体颜色
      this.SubtitleColor = OxyColors.Automatic;           //子标题字体颜色
      this.DefaultFont = "Segoe UI";                      //默认字体
      this.DefaultFontSize = 12;                          //默认字体大小
      this.TitleToolTip = null;                           //标题提示
      this.TitleFont = null;                              //标题字体
      this.TitleFontSize = 18;                            //标题字体大小
      this.TitleFontWeight = FontWeights.Bold;            //标题字重
      this.SubtitleFont = null;                           //子标题字体
      this.SubtitleFontSize = 14;                         //子标题字体大小
      this.SubtitleFontWeight = FontWeights.Normal;       //子标题字重
      this.TitlePadding = 6;                              //标题内边距
      this.ClipTitle = true;                              //是否裁剪标题
      this.TitleClippingLength = 0.9;                     //标题裁剪矩形长度
      this.PlotAreaBorderColor = OxyColors.Black;             //图表区域边框颜色
      this.PlotAreaBorderThickness = new OxyThickness(1);     //图表区域边框大小
      this.EdgeRenderingMode = EdgeRenderingMode.Automatic;   //边角渲染模式
      this.AssignColorsToInvisibleSeries = true;              //是否自动分配颜色给不可见的线条
      this.IsLegendVisible = true;                            //图例是否可见(要使用图例则必须设置线条标题)   

      ***其他属性****
      RenderingDecorator  //渲染装饰器
      Subtitle            //子标题
      Title               //标题
      TitleHorizontalAlignment    //标题和子标题的水平对齐方式


      ***Annotation**注解
      Layer               //注解渲染层(默认为AboveSeries)
      XAxis               //X轴
      XAxisKey            //X轴的键
      YAxis               //Y轴
      YAxisKey            //Y轴的键
      ClipByXAxis         //是否由X轴范围裁剪
      ClipByYAxis         //是否由Y轴范围裁剪

      ***Series***
      Background          //背景色
      IsVisible           //是否可见
      Title               //标题
      LegendKey           //对应的图例的键
      SeriesGroupName     //分组名称
      RenderInLegend      //是否在图例中显示
      TrackerFormatString //Tracker格式化字符串
      TrackerKey          //对应的Tracker的键

      参考https://dlgcy.com/oxyplot-wpf-public-props/
      使用备忘https://dlgcy.com/oxyplot-wpf-use-way/

更多内容,vx私信交流。jiuailtd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1511149.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C# Channel的入门与应用

C# Channel的入门与应用 1. 入门 Channel 是微软在 .NET Core 3.0 以后推出的新的集合类型&#xff0c;该类型位于 System.Threading.Channels 命名空间下&#xff0c;具有异步 API 、高性能、线程安全等等的特点。目前&#xff0c;Channel 最主要的应用场景是生产者-消费者模…

​FastIce-Tech 企业官网开源模版:专为中小企业设计的轻量级网址

标题&#xff1a;FastIce-Tech 企业官网开源模版&#xff1a;专为中小企业设计的轻量级网址 中小企业在建立企业官网时常常面临着时间、资源和技术的限制。为了解决这些问题&#xff0c;FastIce-Tech 企业官网开源模版应运而生。它是一个基于 Vue.js、ElementUI 和 Vue-Router …

帮管客CRM(jiliyu)接口SQL注入漏洞

文章目录 前言声明一、漏洞描述二、影响版本三、漏洞复现四、修复建议 前言 帮管客CRM客户管理系统专注于为企业提供crm客户关系管理、crm管理系统、crm软件产品及企业销售管理流程解决方案服务,助力企业业绩增长。 声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由…

7-2 然后是几点

题目链接&#xff1a;7-2 然后是几点 一. 题目 1. 题目 2. 输入输出格式 3. 输入输出样例 4. 限制 二、代码 1. 代码实现 #include <stdio.h>int time_calc(int start_time, int used_time){int start_hour start_time / 100;int start_minute start_time % 100;…

利用ffmpeg对两个音频文件进行混音处理

前言 最近&#xff0c;拿到了一个语音识别程序&#xff0c;想测试一下它识别的准确性。原本程序有一段自己的测试音频&#xff0c;准确性还可以&#xff0c;但是&#xff0c;自己想增加一下测试素材的复杂性。想到了在原本的测试音频中引入干扰数据&#xff08;噪点&#xff…

灵魂指针,教给(三)

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看&#xff0c;已成习惯 创作不易&#xff0c;多多支持&#xff01; 目录 一、 字符指针变量 二、数组指针变量 2.1 数组指针变量是什么 2.2 数组指针变量如何初始化 三、二维数组传参本质 四、函数…

C语言 —— 图形打印

题目1&#xff1a; 思路&#xff1a; 如果我们要打印一个实心正方形&#xff0c;其实就是一个二维数组&#xff0c;i控制行&#xff0c;j控制列&#xff0c;行列不需要控制&#xff0c;arr[i][j]直接打印星号即可。 对于空心正方形&#xff0c;我们只需要控制行和列的条件&…

【C语言程序设计】C语言求圆周率π(三种方法)

题目一&#xff1a; 利用公式①计求π的近似值&#xff0c;要求累加到最后一项小于10^(-6)为止。 程序代码&#xff1a; #include <stdio.h> #include <stdlib.h> #include <math.h> int main(){float s1;float pi0;float i1.0;float n1.0;while(fabs(i)&…

PaddleOCR表格识别运行实例

目录 PaddleOCR 开源项目地址 一、数据集 1. 训练数据下载 2.数据集介绍 &#xff08;1&#xff09;PubTabNet数据集 &#xff08;2&#xff09; 好未来表格识别竞赛数据集 &#xff08;3&#xff09;WTW中文场景表格数据集 二、训练步骤 1.数据放置 2.环境配置 &…

【递归搜索回溯专栏】专题二:二叉树中的深搜----二叉树剪枝

本专栏内容为&#xff1a;递归&#xff0c;搜索与回溯算法专栏。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;递归搜索回溯专栏 &#x1f69a;代码仓库&#xff1a;小小unicorn的代…

Vue3全家桶 - Vue3 - 【4】侦听器

侦听器 一、 组合式API&#xff1a; 1.1 watch()函数 创建侦听器: 语法:// 先导入 watch 函数 import { watch } from vue watch(source, callback, options)source&#xff1a; 需要侦听的数据源&#xff0c;可以是 ref&#xff08;包括计算属性&#xff09;、一个响应式对…

mangoDB:2024安装

mangoDB:2024安装 mangoDB: 下载链接 取消勾选 配置环境变量 启动服务 同级目录下创建一个db文件夹 然后执行命令&#xff0c;启动服务 mongod --dbpath D:\environment\mango\db访问http://localhost:27017/ 出现下面的就是安装成功 2然后在管理员权限下给mango服务重…

【日常记录】【工具】随机生成图片的网站 Lorem Picsum

文章目录 1、介绍2、获取固定宽高的图片3、处理图片缓存4、 Emmet 缩写语法 1、介绍 Lorem Picsum 是一个免费的图片占位符服务&#xff0c;可以用于网站、应用程序或任何需要占位符图片的地方。它提供了一个简单的 API&#xff0c;可以通过 HTTP 请求获取随机图片&#xff0c;…

嵌入式驱动学习第三周——设备号与字符设备的注册、分配、释放

前言 这一篇博客来谈谈字符设备的注册、分配与释放。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博主并订阅本专栏&#xff0c;一起讨论一起学习。现在关注就是老粉啦&#xff01; 目录 前…

CentOS Linux - Oracle Primavera P6安装及分享

引言 根据计划&#xff0c;近期我制作了多套基于ORACLE Primavera P6 最新发布的23.12版本预构建了虚拟机环境&#xff0c;里面包含了全套P6 最新版应用服务&#xff0c;相比于之前常使用的WindowsServer&#xff0c;这次使用了Linux作为运行平台。 此虚拟机仅用于演示、培训和…

掌握Redis,看完这篇文章就够了

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Redis是什么&#xff1f;二、Redis安装三、Redis相关数据类型 四、基础操作&#xff08;使用了python连接redis&#xff09;1.字符串2.键对应操作3.哈希&am…

实时查询银行卡归属地的API接口,快速获取卡片发卡地信息

快速查询银行卡发卡地信息是一项非常实用的功能&#xff0c;对于进行业务合作、风险评估等方面都有很大的帮助。在本文中&#xff0c;我们将介绍一个实时查询银行卡归属地的API接口&#xff0c;并提供相应的代码示例。 该API接口可以通过输入银行卡号&#xff0c;查询该卡片的…

Tictoc3例子

在tictoc3中&#xff0c;实现了让 tic 和 toc 这两个简单模块之间传递消息&#xff0c;传递十次后结束仿真。 首先来介绍一下程序中用到的两个函数&#xff1a; 1.omnetpp中获取模块名称的函数 virtual const char *getName() const override {return name ? name : "&q…

Rust 安装与版本更新

Rust 简介 Rust &#xff0c;一门赋予每个人构建可靠且高效软件能力的语言&#xff0c;主打内存安全。 2024年2月&#xff0c;在一份 19 页的报告《回归基础构件&#xff1a;通往安全软件之路》中&#xff0c;白宫国家网络主任办公室&#xff08;ONCD&#xff09;呼吁开发者使…

linux ,Windows部署

Linux部署 准备好虚拟机 连接好查看版本&#xff1a;java -version安装jdk 解压命令&#xff1a;tar -zxvf 加jdk的压缩文件名cd /etc 在编辑vim profile文件 在最底下写入&#xff1a; export JAVA_HOME/root/soft/jdk1.8.0_151&#xff08;跟自己的jdk保持一致&#xff0…