WPF散点图学习

一、 初始化界面

RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
  • 这行代码设置了渲染模式为软件渲染模式。在 WPF(Windows Presentation Foundation)中,渲染模式决定了图形和界面元素如何在屏幕上绘制和呈现。软件渲染模式通常用于在不支持硬件加速的环境中进行图形绘制,或者在需要更高兼容性和稳定性的场景下使用。
InitializeComponent();
  • 这是一个 WPF 中常见的语句,用于初始化当前窗体或用户控件的组件。它通常在窗体或用户控件的构造函数中调用,用来加载 XAML 中定义的界面元素和布局。
var dataSeries1 = new XyDataSeries<int, int>();

这段代码创建了一个 XyDataSeries 对象,该对象可以存储和管理 X 轴和 Y 轴均为整数类型的数据。这个对象可以用来添加、删除和操作图表中的数据点,从而在图表中展示这些数据

二、创建一系列近似于正弦的模拟数据

double dou = 0; // 定义一个双精度浮点数变量
int XAxisLen = 2047; // 设置了X轴的长度,也是数据的个数
Random random = new Random(); // 创建随机数生成器for (int i = 0; i < XAxisLen; i++) // 循环生成模拟数据
{double noise = random.NextDouble() * 50 - 25; // 生成范围随机噪声int yValue = (int)(Math.Sin(dou) * 200 + noise + 400); // 设置峰值并加上偏移量dataSeries1.Append(i, yValue); // 向原始数据系列添加数据点dou += 0.003; // 增加之后周期变短
}
  • double dou = 0;

    • 定义一个名为 dou 的双精度浮点数变量,并初始化为 0。
    • 这个变量将在循环中用于计算正弦波的值。
  • int XAxisLen = 2047;

    • 定义一个名为 XAxisLen 的整数变量,并将其设置为 2047。
    • 这个变量表示 X 轴的长度,也是生成的数据点的个数。
  • Random random = new Random();

    • 创建一个 Random 类的实例 random,用于生成随机数。
    • Random 类提供生成伪随机数的功能。
  • for (int i = 0; i < XAxisLen; i++)

    • 使用 for 循环来生成模拟数据,循环次数为 XAxisLen(即 2047 次)。
    • i 是循环变量,从 0 开始,每次循环递增 1,直到小于 XAxisLen
  • double noise = random.NextDouble() * 50 - 25;

    • 生成一个范围在 [-25, 25) 之间的随机噪声。
    • random.NextDouble() 生成一个范围在 [0.0, 1.0) 的双精度浮点数,将其乘以 50 后减去 25,即得到范围为 [-25, 25) 的噪声值。
  • int yValue = (int)(Math.Sin(dou) * 200 + noise + 400);

    • 计算 y 轴的值 yValue
    • 使用 Math.Sin(dou) 计算 dou 的正弦值,并将其放大 200 倍,然后加上噪声和偏移量 400。
    • 将结果转换为整数类型。
  • dataSeries1.Append(i, yValue);

    • 将计算得到的 (i, yValue) 数据点添加到 dataSeries1 数据系列中。
    • i 作为 x 轴的值,yValue 作为 y 轴的值。
  • dou += 0.003;

    • 在每次循环后,将 dou 增加 0.003。
    • 这样可以在每次循环中逐渐增加正弦函数的输入值,生成连续的正弦波形数据。

三、散点图的创建

lineSeries1 = new XyScatterRenderableSeries // 创建一个散点图系列
{DataSeries = dataSeries1, // 设置数据系列PointMarker = new EllipsePointMarker { Width = 2, Height = 2, Fill = Colors.White }, // 设置点标记样式YAxisId = "LeftYAxis" // 设置 Y 轴 ID
};
  • lineSeries1 = new XyScatterRenderableSeries

    • 创建一个 XyScatterRenderableSeries 对象并将其赋值给 lineSeries1 变量。
    • XyScatterRenderableSeries 是用于绘制散点图的类。
  • DataSeries = dataSeries1,

    • 将之前创建并填充的数据系列 dataSeries1 赋值给 lineSeries1DataSeries 属性。
    • 这意味着 lineSeries1 将使用 dataSeries1 中的数据来绘制散点图。
  • PointMarker = new EllipsePointMarker { Width = 2, Height = 2, Fill = Colors.White },

    • 设置散点图中点的标记样式。
    • PointMarker 属性被赋值为一个新的 EllipsePointMarker 对象。
    • EllipsePointMarker 是一个椭圆形的点标记,其 WidthHeight 属性被设置为 2,表示点的大小为 2 像素。
    • Fill = Colors.White 设置点的填充颜色为白色。
  • YAxisId = "LeftYAxis"

    • 设置散点图系列使用的 Y 轴的 ID 为 "LeftYAxis"
    • 这意味着 lineSeries1 将使用 ID 为 "LeftYAxis" 的 Y 轴。

 sciChart.RenderableSeries.Add(lineSeries1); //

  • 添加散点图系列到 SciChart 中
     

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

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

相关文章

ElementPlus组件与图标按需自动引入

按需自动引入组件 1. 安装ElementPlus和自动导入ElementPlus组件的插件 pnpm install element-plus pnpm install -D unplugin-vue-components unplugin-auto-import 2. vite.config.ts进行修改 import { defineConfig } from vite import vue from vitejs/plugin-vue // …

当涉及到计算机科学、编程和软件开发时,以下是一些常见词汇的中英文对照表:

当涉及到计算机科学、编程和软件开发时&#xff0c;以下是一些常见词汇的中英文对照表&#xff1a; Git - GitRepository - 仓库Branch - 分支Commit - 提交Pull Request - 拉取请求Merge - 合并Clone - 克隆Fork - 分叉Remote - 远程Origin - 源Push - 推送Fetch - 获取Check…

Java 消息队列详解

什么是消息队列&#xff1f; 消息队列是一种通过存储消息来实现系统间通信的中间件。消息生产者将消息发送到队列中&#xff0c;消息消费者从队列中取出并处理消息。这种模式实现了生产者和消费者的解耦&#xff0c;即使它们不同时在线&#xff0c;也可以通过消息队列进行通信…

道可云元宇宙每日资讯|厦门:运用元宇宙技术助力直播电商发展

道可云元宇宙每日简报&#xff08;2024年6月20日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 厦门&#xff1a;运用元宇宙技术助力直播电商发展 近日&#xff0c;厦门市商务局印发《厦门市促进直播电商高质量发展若干措施&#xff08;2024年-2026年&#xff0…

T200S4高清4路SDI采集卡

产品简介&#xff1a; 同三维T200S4 4路高清SDI采集卡&#xff0c;可以同时采集4路SDI高清信号&#xff0c;卡上有4个SDI接口1个SDI环出转接口&#xff0c;配件有&#xff1a; 1个转SDI转接线&#xff0c;PCI-E2.0 X4&#xff0c;分辨率最高可以达到1080P/60HZ,带SDK开发包&am…

计算机网络:应用层 - 文件传输协议 FTP 电子邮件

计算机网络&#xff1a;应用层 - 文件传输协议 FTP & 电子邮件 文件传输协议 FTP电子邮件 文件传输协议 FTP 文件传送协议 FTP(File Transfer Protocol)&#xff0c;曾是互联网祝频讲解上使用得最广泛的文件传送协议。 其特点是&#xff1a;若要存取一个文件&#xff0c;…

fastadmin中$searchFields解析

在控制器或者模型中添加这个属性&#xff1a; protected $searchFields goods_name,goods_brand,category.name,manystoreShop.name,goods_model; 查询sql拼接就会自携带&#xff1b;原理如下&#xff1a;

element-ui 表单的验证不生效可能有以下几种原因:v

表单验证规则没有正确设置&#xff1a;在 element-ui 表单组件中&#xff0c;需要通过设置 rules 属性来定义表单字段的验证规则&#xff0c;例如&#xff1a; <el-form :model"form" :rules"rules"><el-form-item label"用户名" prop…

算法基础精选题单 模拟 (个人题解)

前言&#xff1a; 从今天开始刷牛客上的这份题单&#xff0c;为暑假的牛客多校集训做准备&#xff0c;题单上一共有237道题&#xff0c;要想在集训开始前刷完难度还是很大的&#xff0c;但我一定会坚持下来&#xff0c;希望在这段时间内我能真正入门算法竞赛。接下来这三道题都…

操作系统实战(一)(PV经典问题之生产者与消费者)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;操作系统 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 进程互斥与同步 题目一 题目二 题…

在SQL中使用explode函数展开数组的详细指南

目录 简介示例1&#xff1a;简单数组展开示例2&#xff1a;展开嵌套数组示例3&#xff1a;与其他函数结合使用处理结构体数组示例&#xff1a;展开包含结构体的数组示例2&#xff1a;展开嵌套结构体数组 总结 简介 在处理SQL中的数组数据时&#xff0c;explode函数非常有用。它…

C#——装箱与拆箱详情

装箱与拆箱 装箱: 将值类型转换成引用类型的过程&#xff1b; 拆箱: 把引用类型转为值类型的过程&#xff0c;就是拆箱 装箱 拆箱

洗地机哪个品牌好?四大实力拔尖单品力荐

洗地机哪个品牌好呢&#xff1f;想必姐妹们肯定觉得保持家里清洁是非常重要的&#xff0c;但是每天打扫卫生真的会让人整个都要疯狂&#xff0c;这不&#xff0c;救星洗地机就能派上用场了&#xff0c;干垃圾湿垃圾统统都能一次清理干净。只需轻轻一推&#xff0c;就能把扫地、…

帝国cms批量取消文章审核-把已审核的文章改成未审核的方法

帝国cms很多人采集的时候&#xff0c;把文章弄成了审核过的文章&#xff0c;或者因为其他的原因&#xff0c;文章都是审核通过&#xff0c;为了seo又不能把全部文章放出来&#xff0c;所以需要把文章弄成未审核以下就是解决本问题的办法 首先来修改后台列表文件&#xff0c;自…

栈,队列,数组,链表

一.数据结构概述 数据结构是计算机底层存储,组织数据的方式。 是指数据相互之间是以什么方式排列在一起的。 数据结构是为了更加方便的管理和使用数据,需要结合具体的业务场景来进行选择。 一般情况下,精心选择的数据结构可以来更高的运行或者存储效率。 二.学好数据结构三大…

Python基础-类与对象

1.面向对象的三大特性 封装继承多态 2.类与对象的理解与封装特性 类是事物抽象的集合&#xff0c;对象是事物具象的个体。&#xff08;类–>实例化–>对象&#xff09; 面向对象编程语言 类: 一个模板, (人类)—是一个抽象的&#xff0c; 没有实体的对象: (eg: 张三&a…

SQL题:未完成率较高的50%用户近三个月答卷情况

SQL题&#xff1a;未完成率较高的50%用户近三个月答卷情况 这是一道牛客网上SQL进阶图库中的一道困难题目&#xff0c;个人花了近两个小时才通过所有用例。之所以想记录下来是因为这道题算是一个很考验基本功的题目&#xff0c;也不乏一些SQL中的技巧。下面我们逐步分析&#…

java干货 线程池的分析和使用

文章目录 一、了解线程池1.1 什么是线程池1.2 为什么需要线程池 二、四种线程池的使用2.1 newFixedThreadPool2.2 newCachedThreadPool2.3 newSingleThreadExecutor2.4 newScheduledThreadPool 三、自定义线程池3.1 线程池七大核心参数3.2 线程池内部处理逻辑 一、了解线程池 …

Leetcode - 132双周赛

目录 一、3174. 清除数字 二、3175. 找到连续赢 K 场比赛的第一位玩家 三、3176. 求出最长好子序列 I 四、3177. 求出最长好子序列 II 一、3174. 清除数字 本题可以使用栈来模拟&#xff0c;遇到数字弹出栈顶元素&#xff0c;遇到字母入栈。 代码如下&#xff1a; //使用字…

VMware虚拟机卡顿(虚拟机卡死)(调整所有虚拟机内存使其适应预留的主机 RAM (F)、默认进程优先级、不允许使用内存页面修整功能(M))

文章目录 设置编辑——首选项——内存——额外内存——调整所有虚拟机内存使其适应预留的主机 RAM (F)&#xff08;我把这个勾上了&#xff09;编辑——首选项——优先级——默认进程优先级虚拟机——设置——选项——高级——不允许使用内存页面修整功能(M) 参考文章&#xff…