C#科学绘图之scottPlot绘制多个图像

文章目录

    • 示例
    • 移除图像
    • 图例
    • 信号图

scott系列:绘图初步

示例

从名字就能看出,ScottPlot的绘图函数AddScatter的作用是为图窗添加数据点,换言之,每调用一次AddScatter,就可以在图窗中添加一组图像。下面添加两个按钮,分别用于绘制正弦和余弦图像,其正弦按钮的响应函数如下

ScatterPlot sinPlot;
private void btnSin_Click(object sender, RoutedEventArgs e)
{var xs = Enumerable.Range(0, 1000).Select(x => x / 100.0).ToArray();var ys = xs.Select(x => Math.Sin(x)).ToArray();sinPlot = plt.Plot.AddScatter(xs, ys);plt.Refresh();
}

其中,sinPlot被设为全局变量,目的是方便后续用其他按钮来操纵函数图像。余弦图像的相应函数如出一辙,只需把变量名以及 y s ys ys的生成过程更改一下,效果如下

在这里插入图片描述

移除图像

移除图像,只需调用Remove函数,以移除正弦函数为例,其相应动作如下

private void btnRmSin_Click(object sender, RoutedEventArgs e)
{plt.Plot.Remove(sinPlot);plt.Refresh();
}

下面演示一下移除图像的效果,顺便参悟一下弹出窗口的逻辑,所谓弹出窗口,就是把当前图窗中的图形作为一个对象复制一份,然后这个对象将与旧图窗变成陌生人,互不相干。

在这里插入图片描述

图例

若想在图窗中对两个图像做区分,就需要指明图像的Label,仍以正弦函数为例,修改绘制按钮的点击函数,当然余弦函数也做相似处理。

private void btnSin_Click(object sender, RoutedEventArgs e)
{var xs = Enumerable.Range(0, 100).Select(x => x / 10.0).ToArray();var ys = xs.Select(x => Math.Sin(x)).ToArray();sinPlot = plt.Plot.AddScatter(xs, ys,label:"sin");plt.Plot.Legend();plt.Refresh();
}

由于前面 1000 1000 1000个点的绘制效果不太好看,所以上面代码把点数控制在100个,绘制结果如下

在这里插入图片描述

信号图

Scott支持把不同类型的图像在一个图窗中绘制,例如可以同时绘制散点图和信号图,示例如下

SignalPlot sigPlot;
private void btnSignal_Click(object sender, RoutedEventArgs e)
{double[] values = DataGen.RandomWalk(1_000_000, 0.003, 0.5);sigPlot = plt.Plot.AddSignal(values, sampleRate: 48_000);plt.Refresh();
}

这个图像和前面的sinPlot,cosPlot连数据类型都是不一致的,不过很显然二者有相同的父类。下面是其绘图结果

在这里插入图片描述

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

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

相关文章

excel在扩展屏幕中显示有时候显示黑屏,这种怎么处理?

在使用Excel时,如果在扩展屏幕中出现黑屏或其他显示问题,可以尝试以下方法来解决: 1. 更新显卡驱动程序: 确保你的计算机的显卡驱动程序是最新版本。过时的或不兼容的显卡驱动可能导致显示问题。 2. 调整分辨率和屏幕比例&#…

CS5565设计资料|CS5565规格书|typec转HDMI 8k60Hz方案

CS556x是一款高性能的Type-C/DisplayPort1.4到HDMI2.1协议转换器,可通过Type-C/ DisplayPort链路接收视频和音频流,并转换为支持TMDS或FRL输出信令的HDMI。DP接收器在4个通道上支持高达8.1Gbps的链路速率。HDMI输出端口可用作TMDS或FRL发射器。FRL发射器…

天猫数据分析(天猫数据查询平台):11月天猫啤酒市场销售数据分析报告

在酒类市场中,被视作“气氛担当”的啤酒,是派对聚会或者自饮场景中的常客,消费人群广泛,如今,啤酒市场已进入存量时代,市场中啤酒的销售也在稳步增长。 鲸参谋数据显示,今年11月份,天…

技术分享 | app测试中常用的Android模拟器

Emulator Emualor 是 Android Studio 自带的模拟器,是官方提供的工具,Android 开发最常使用的就是这一款。 它功能非常齐全,电话本、通话等功能都可正常使用。用户可以使用键盘输入,鼠标点击模拟器按键输入,甚至还可以…

MySql数据库的初步认识(数据库学习—— 一)

什么是数据库 数据库(Database) 是按照数据结构来组织、存储和管理数据的仓库。它是数据管理的有效技术, 是由一批数据构成的有序集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映客 观事物间的本质联…

物联网网关

物联网网关是连接物联网设备和互联网的重要桥梁。 它负责将物联网设备采集到的数据进行处理、存储和转发,使其能够与云端或其它设备进行通信。 物联网网关的作用是实现物联网设备与云端的无缝连接和数据交互。 物联网网关功能 数据采集:物联网网关可以从…

十四、YARN核心架构

1、目标 (1)掌握YARN的运行角色和角色之间的关系 (2)理解使用容器做资源分配和隔离 2、核心架构 (1)和HDFS架构的对比 HDFS架构: YARN架构:(主从模式) &…

一个简单的cmake模板(C++)

链接:小黑屋1024 / Python GitCode #对cmake版本的要求,此处不低于3.16 cmake_minimum_required(VERSION 3.16)#项目名称:此处为test project(test)#设置编译生成产物输出路径 ##可执行文件exe SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURC…

医学检验系统LIS源码,C# +.Net+Oracle

LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。  体系结构:Client/Server架构 客户端:WPFWindows Forms 服务端:C…

escapeshellarg参数绕过和注入的问题

escapeshellcmd escapeshellcmd(string $command): string command--要转义的命令。 escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec() 或 system() 函数,或者 执行操作符 之前进行转义。 …

pytest + yaml 框架 -60.git+jenkins+allure+钉钉通知反馈

前言 当我们自动化用例写完后,接下来就是如何运行用例,生成报告以及反馈通知了。 如果你们公司已经有jenkins了,那么直接集成到jenkins上构建你的自动化任务是非常方便的。 用例上传git仓库 第一步,将写好的自动化用例&#xf…

保障线程安全性:构建可靠的多线程应用

目录 引言 为什么线程安全性如此重要? 1. 竞态条件(Race Conditions) 2. 死锁(Deadlocks) 3. 数据竞争(Data Races) 4. 内存可见性(Memory Visibility) 面临的挑战…

一张图系列 - “leetcode快速复习“

什么是leetcode? LeetCode是一个在线评测平台,提供大量算法题目,可帮助程序员提高编程和算法能力。它主要提供算法和数据结构相关的练习题,包括各种难度级别的编程题,从简单的算法题到复杂的系统设计问题都有。用户可…

【玩转TableAgent数据智能分析】TableAgent全功能详解及多领域数据分析实践(中)不同领域数据分析实践

3 电影点评数据分析实践 利用本身自带的电影点评数据,来具体看一下TableAgent的分析能力,选择电影点评数据,智能体会自动导入该数据DMSC20000.csv,大小为3.3 MB。在数据信息展示区,就会显示出该数据,并提供…

知识付费平台选择指南:如何找到最适合你的学习平台?

在当今的知识付费市场中,用户面临的选择越来越多,如何从众多知识付费平台中正确选择属于自己的平台呢?下面,我们将为您介绍我有才知识付费平台相比同行的优势,帮助您做出明智的选择。 一、创新的技术架构,…

Java研学-MyBatis框架

一 MyBatis框架 1 框架介绍 框架:对基础代码进行封装并提供相应的API,调用API可省去一些代码的编写,从而提高效率。一个好的框架一定是经过测试,自身的功能已经实现,可以完成特定的功能。 2 MyBatis 框架 MyBatis 框…

Spring Mybatis随记

连接池获取连接逻辑 com.zaxxer.hikari.pool.HikariPool#getConnection(long) // 内部循环获取空闲连接,返回前检查数据库连接是否可以用Spring获取连接 如果已经开启了事务,只要没提交事务,调用非事务的DAO执行sql也会被事务统一管理 org.…

基于物理的AlGaN/GaN HEMT器件2DEG电荷密度分析模型(文献阅读)

标题:A Physics-Based Analytical Model for 2DEG Charge Density in AlGaN/GaN HEMT Devices (IEEE TRANSACTIONS ON ELECTRON DEVICES) 重要公式 2DEG电荷密度建模的困难源于量子阱中Ef随ns的复杂变化。此关系由给出 n s D V t h [ l n ( l e E f − E 0 V t …

Seconds_Behind_Master越来越大,主从同步延迟

问题现象 发现从库mysql_slave的参数Seconds_Behind_Master越来越大。已排除主从服务器时间不一致;那么主要就判断两点:是io thread慢还是 sql thread慢?先观察show slave status\G 。 判断3个参数(参数后面的值是默认空闲时候的…

文献速递:PET-影像组学专题--PET衍生的影像组学和人工智能在乳腺癌中的应用:一篇系统综述

文献速递:PET-影像组学专题–PET衍生的影像组学和人工智能在乳腺癌中的应用:一篇系统综述 01 文献速递介绍 乳腺癌(BC)是目前流行度最高的恶性肿瘤,也是全球女性癌症相关死亡的第二大原因,过去十年间发病…