ScottPlot学习的常用笔记-02

ScottPlot学习的常用笔记-02

  • 写在前面
    • Why&Target:这里记一些杂项。
    • 上下文&背景
  • 先记一下这几个小时的新收获
  • 先说一下,为什么可开发可视工具
  • 缩放的问题
  • ScottPlot5.0起步
    • .net Core: WinExe
    • .Net Framework也是可以的

写在前面

Why&Target:这里记一些杂项。

其中一个原因,是记录下在初学时,面对多种维度的选择相关的选择困难时的尝试。

上下文&背景

今天是周五了,一周的紧张的工作,算是提前实现我认为的目标。一方面,为下周准备,一方面,思考一下有哪些地方,走马观花,只是拿来用,却没有细细品味的地方。
其中一个是边学边用的ScottPlot,有许多地方没有搞清楚。
所以,花了点时间总结了一下。

先记一下这几个小时的新收获

1。 如果不需要编译源码,而是直接用NuGet管理器,vs2019与vs2022区别不大。
当然,如果您要下载ScottPlot的源码自己进行编译,那么,最好用vs2022,vs2019似乎相当困难。
这种情况,大家容易理解。以前有人写过一些书,讨论过,编写类库与编普通程序有什么不同。
类库相当于服务的提供方,它必须是大而全的,因为客户总是需要的比他自己实际需要得多;
因为这样,类库的代码往往也会引入许多各种类库,从而导致其构建过程越来越困难。
以前我维护过gcc,gdb之类的toolchain,我们的编译环境,一般几年也不会升一次级。

但如果,只是用人家做好的binary,则一般就简单多了。用vs2019还是2022目前来看,差别不大。
所以,这里我不是要反悔上篇中说的内容。

2。 关于Zoom。放大缩小的功能,原来是控件中自带的,不论是4.1还是5.0都是一样的。
是右键和中键。这个把我整得有些地语了。。。
我一个机电专业的工科生,刚毕业最熟就是AutoCAD,也不清楚,是不是习惯了那种橡皮筋的方式放大,我就没想到是右键。

这事,为什么我这么感慨,是因为,事先不知道,周三需要演示成果,我自己写了一个放大的功能。。。
结果刚刚到网上详细找了找,原来是自带的。。。但确实是以一种我没有想到的方式。好吧。

3。5。0的初步。 4.1已初步使用过。
一会我们讲讲5。0的起步。

先说一下,为什么可开发可视工具

这个应访单写一篇文章,但就写在这吧。因为这种逻辑我心里比较清楚。
其它人,是否认同是他们的问题,是吧。

一般来说,中国的老板,是信高手不信工具。
他们更信“高手”,而不是技术。
这其实是一种神文主义:把一个具体的人,物化成一个全知全能的“高手”。这时这个"高手”已不是人。
下次有人说你是高手时,你要小心,这人没把你当人。
全知全能,这个单词,请问,在人文书里有吗?
但你去应聘时,你会发现,你对面的老板就这个逻辑。
在这里插入图片描述遇到这样的但是,为了生计,你也可能要留下来。
但你必须要聪明地来做事。其中一个就是依赖工具。
目前,我要定位系统性能问题,这个问题,可能是我凭借经验能定位出来的,但我不会这么做。
因为:
(1)没有一个人,会喜欢听到你说他写的代码性能不足的!
(2)每个人,都会利用降低其它人的模块的性能来加强自己的性能,牺牲大家成就小我,是我们大家的共同心愿。
没有工具,你就是打地鼠那个人,翘翘板效应,能把你累到怀疑人生。

也就是这工具,是给我自己用的。
在目标代码中,加入了我用于定位的probe,然后开发了工具,我自己用。
但给出的图形,却是每个人无法以:我看不懂,来抵赖的。

但后果是你要坚持和强硬。作系统分析,没有硬心肠是不行的。老板都是急于要成果,你但必须情楚,事情到这一步,一定是之前欠账很多。如果容易解决,别人早搞定了。
如果有“高手”能解决,也轮不到你登场。如果你认为,自己就是那个绝世高手,那你可要小心了。

工欲善其事,必先利其器。

缩放的问题

为了达到更好的展示效果,虽然我只写了这个工具的冰水一角,我还是想把缩放做得好一点。
在这里插入图片描述上图中,我还加了个checkbox,用于缩说,虽不成功,但也将就用。
但是刚刚我去网上找了找,结果是让我崩溃的,因为本来ScottPlot就有这功能,而且不论是4.1还是5.0都有。
见这个issue 90

https://github.com/ScottPlot/ScottPlot/issues/90
在这里插入图片描述我在这理解了好半天,middle-click,
然后我试了一下,鼠标的中键确是可以缩放的!
两个版本都试过了,没有差别。
这个就不上图了。大家可以自己试一下。

这事,让我很有些恼火。

ScottPlot5.0起步

只是起步,谈不上入门

1。 之前提到vs2022和 vs2019都可以。所以,这里只用vs2022来说明。
由于网上有一些文章,我不重复了。

简要说明如下:
工程可以选
.NetApp,然后加入.netFrame的控件:

.net Core: WinExe

在这里插入图片描述工程如下
在这里插入图片描述
在这里插入图片描述

.Net Framework也是可以的

在这里插入图片描述缺点是,不能在DesignTime显示。
不过这还真是无所谓。
在这里插入图片描述运行起来就可能看到:
在这里插入图片描述
不论是vs2019还是vs2022都相同效果。
但是ScottPlot 4.*版本,没有这个问题。
最简单的示例代码如下:
.net APP

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WinFormsApp1SPlot5
{
    public partial class LineChart : Form
    {
        public LineChart()
        {
            InitializeComponent();
        }

        private void LineChart_Load(object sender, EventArgs e)
        {
            double[] dataX = GetRandomNum(20).Distinct().OrderByDescending(x => x).ToArray();
            double[] dataY = GetRandomNum(19).Distinct().OrderByDescending(x => x).ToArray();
            formsPlot1.Plot.Add.Scatter(dataX, dataY);
            formsPlot1.Refresh();
        }

        public double[] GetRandomNum(int length)
        {
            double[] getDate = new double[length];
            Random random = new Random(); //创建一个Random实例
            for (int i = 0; i < length; i++)
            {
                getDate[i] = random.Next(1, 100); //使用同一个Random实例生成随机数
            }
            return getDate;
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CTF_1

CTF_Show 萌新赛 1.签到题 <?php if(isset($_GET[url])){system("curl https://".$_GET[url].".ctf.show"); }else{show_source(__FILE__); }?> 和 AI 一起分析 1.if(isset($_GET[url]))检查GET请求中是否存在名为url的参数。 curl 2.curl…

【Spring】Spring框架之-AOP

目录 1. AOP的引入 2. AOP相关的概念 2.1 AOP概述 2.2 AOP的优势 2.3. AOP的底层原理--目前先不具体阐述&#xff0c;后面讲 3. Spring的AOP技术-配置文件方式 3.1 AOP相关的术语 3.2 基本准备工作 3.3 AOP配置文件方式的入门 3.4 切入点的表达式 3.5 AOP的通知类型 …

我的2024年度总结

称着这个周末&#xff0c;写一篇2024年度总结&#xff0c;主要记录我过去一年的成长经历以及自己的一些收获。 过去一年的经历&#xff0c;可谓刻骨铭心&#xff0c;一个是24考研惨败&#xff0c;一个是毕设的准备&#xff0c;一个是省考的陪考&#xff0c;一个是找工作的焦虑…

Java 中的字符串

目录 Java 中的字符串字符串的创建字符串的比较字符串的拼接如何定义一个空的字符串 Java 中的字符串 字符串的创建 在 Java 中&#xff0c;可以通过以下几种方式创建字符串&#xff1a; 1.使用字符串字面量&#xff1a; String str "Hello, World!";2.使用 new…

数说故事聚焦“卖车”场景,推出AI汽车销售转化解决方案

没错&#xff0c;“卖车”我们也在行&#xff0c;为某车企“保住”了新车上市的订单。 深耕汽车行业多年&#xff0c;该车企10月份刚发布一款新能源车&#xff0c;其前期已经拥有了大量的保有客户和线上多渠道获取的潜在客户&#xff0c;然而&#xff0c;仍面临两大难题&#x…

javaEE-多线程编程-3

目录 java 常见的包 : 回调函数: 什么是线程: 第一个线程: 验证多线程执行: 内核: 调用sleep()方法: 执行结果分析: 线程创建的几种方式: 1.继承Thread类,重写run()方法. 2.实现Runnable接口,重写run()方法. 3.继承Thread类,重写run()方法.但使用匿名内部类 4.实现…

FFmpeg 框架简介和文件解复用

文章目录 ffmpeg框架简介libavformat库libavcodec库libavdevice库 复用&#xff08;muxers&#xff09;和解复用&#xff08;demuxers&#xff09;容器格式FLVScript Tag Data结构&#xff08;脚本类型、帧类型&#xff09;Audio Tag Data结构&#xff08;音频Tag&#xff09;V…

芯片级IO (Pad) Ring IP Checklist

SoC top顶层数字后端实现都会涉及到IO Ring &#xff08;PAD Ring&#xff09;的设计。这里面包括VDD IO,VDDIO IO, Signal IO, Corner IO&#xff0c;Filler IO&#xff0c;IO power cut cell等等。 数字后端零基础入门系列 | Innovus零基础LAB学习Day2 数字IC后端实现TOP F…

圣诞快乐(h5 css js(圣诞树))

一&#xff0c;整体设计思路 圣诞树h5&#xff08;简易&#xff09; 1.页面布局与样式&#xff1a; 页面使用了全屏的黑色背景&#xff0c;中央显示圣诞树&#xff0c;树形由三层绿色的三角形组成&#xff0c;每一层的大小逐渐变小。树干是一个棕色的矩形&#xff0c;位于三角…

Linux应用开发————mysql数据库表

mysql数据库表操作 查看表的结构 mysql> desc / describe 表名; 或者&#xff1a; mysql> show create table 表名; 常见数据库引擎&#xff1a; innodb, myISAM... 删除表 mysql> drop tabl…

移动网络(2,3,4,5G)设备TCP通讯调试方法

背景&#xff1a; 当设备是移动网络设备连接云平台的时候&#xff0c;如果服务器没有收到网络数据&#xff0c;移动物联设备发送不知道有没有有丢失数据的时候&#xff0c;需要一个抓取设备出来的数据和服务器下发的数据的方法。 1.服务器系统是很成熟的&#xff0c;一般是linu…

Unity中的委托和事件(UnityAction、UnityEvent)

委托和事件 &#x1f392;什么是委托&#xff0c;委托的关键字是Delegate&#xff0c;委托是一种函数的容器&#xff0c;运行将函数做为变量来进行传递 通过Delegate关键字我们声明了一个无参无返回的委托&#xff0c;通过这个委托我们可以存储无参无返回的函数 public deleg…

基于SpringBoot的“交流互动系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“交流互动系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能图 管理员登录界面图 个人信息界面图 个人…

LeetCode hot100-93

https://leetcode.cn/problems/longest-palindromic-substring/description/?envTypestudy-plan-v2&envIdtop-100-liked 5. 最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。状态定义 我们用一个二维数组 dp[i][j] 表示子串 s[i…j] 是否是回文&…

C语言入门指南:从零开始的编程之路

记得我刚开始接触编程时,也像很多初学者一样充满疑惑。编程看起来很神奇,但要如何开始呢?经过多年编程经验的积累,今天和大家分享如何入门C语言编程。 C语言诞生于1972年,由Dennis Ritchie在贝尔实验室开发。它的出现彻底改变了计算机编程的历史。虽然现在有很多更新的编程语…

详解Redis的String类型及相关命令

目录 SET GET MGET MSET SETNX SET和SETNX和SETXX对比 INCR INCRBY DECR DECRBY INCRBYFLOAT APPEND GETRANGE SETRANGE STRLEN 内部编码 SET 将 string 类型的 value 设置到 key 中。如果 key 之前存在&#xff0c;则覆盖&#xff0c;⽆论原来的数据类型是什么…

SpringBoot使用 AOP 实现自定义日志记录并保存在Mysql

本文主要介绍在 Spring Boot 中使用 AOP 实现自定义日志记录并保存在 Mysql 的方法。先阐述记录日志的重要性及传统方式的弊端&#xff0c;提出新方式&#xff0c;即通过创建自定义注解、切面类等&#xff0c;将重要日志存到数据库&#xff0c;还给出了创建日志表、注解类、切面…

对golang的io型进程进行off-cpu分析

背景&#xff1a; 对于不能占满所有cpu核数的进程&#xff0c;进行on-cpu的分析是没有意义的&#xff0c;因为可能程序大部分时间都处在阻塞状态。 实验例子程序&#xff1a; 以centos8和golang1.23.3为例&#xff0c;测试下面的程序&#xff1a; pprof_netio.go package m…

CTF入门:以Hackademic-RTB1靶场为例初识夺旗

一、网络扫描 靶机ip地址为192.168.12.24 使用nmap工具进行端口扫描 nmap -sT 192.168.12.24 二、信息收集 1、80端口探索 靶机开放了80和22端口&#xff0c;使用浏览器访问靶机的80端口&#xff0c;界面如下&#xff1a; 点击target发现有跳转&#xff0c;并且url发生相应变…

腾讯云智能结构化OCR:以多模态大模型技术为核心,推动跨行业高效精准的文档处理与数据提取新时代

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大三学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…