ScottPlot学习的常用笔记-02

news2024/12/22 5:00:21

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;
        }
    }
}

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

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

相关文章

uniapp使用腾讯地图接口的时候提示此key每秒请求量已达到上限或者提示此key每日调用量已达到上限问题解决

要在创建的key上添加配额 点击配额之后进入分配页面&#xff0c;分配完之后刷新uniapp就可以调用成功了。

【Harmony Next】多个图文配合解释DevEco Studio工程中,如何配置App相关内容,一次解决多个问题?

解决App配置相关问题列表 1、Harmony Next如何配置图标&#xff1f; 2、Harmony Next如何配置App名称&#xff1f; 3、Harmony Next如何配置版本号&#xff1f; 4、Harmony Next如何配置Bundle ID? 5、Harmony Next如何配置build号&#xff1f; 6、Harmony Next多语言配置在哪…

vue3实现打印table订单表格

废话少说&#xff0c;直接上代码&#xff01; /utils/commonFunction.ts 把数字转换成繁体中文封装函数 export default function () {// 把数字转换成繁体中文function convertCurrency(money: any) {//汉字的数字var cnNums new Array("零","壹",&quo…

VSCode:Markdown插件安装使用 -- 最简洁的VSCode中Markdown插件安装使用

VSCode&#xff1a;Markdown插件安装使用 1.安装Marktext2.使用Marktext 本文&#xff0c;将在Visual Studio Code中&#xff0c;安装和使用Markdown插件&#xff0c;以Marktext插件为例。 1.安装Marktext 打开VSCode&#xff0c;侧边栏中找到扩展模块(或CtrlShiftX快捷键)&am…

五十个网络安全学习项目——(九)无线网络安全分析

五十个网络安全学习项目——&#xff08;九&#xff09;无线网络安全分析 这个系列灵感来源是&#xff1a;50个网络安全项目创意&#xff1a;覆盖新手至专家级&#xff0c;本人打算把这些项目都做一遍&#xff0c;做好记录&#xff0c;也算是对自己的提升。 本文将对WAPI 协议…

Sigrity System Explorer Snip Via Pattern From Layout模式从其它设计中截取过孔模型和仿真分析操作指导

Sigrity System Explorer Snip Via Pattern From Layout模式从其它设计中截取过孔模型和仿真分析操作指导 Sigrity System Explorer Snip Via Pattern From Layout模式支持从其它设计中截取过孔模型用于仿真分析,同样以差分模板为例 具体操作如下 双击打开System Explorer软件…

【Java基础面试题025】什么是Java的Integer缓存池?

回答重点 Java的Integer缓存池&#xff08;Integer Cache&#xff09;是为了提升性能和节省内存。根据实践发现大部分的数据操作都集中在值比较小的范围&#xff0c;因此缓存这些对象可以减少内存分配和垃圾回收的负担&#xff0c;提升性能 在 -128到127范围内的Integer对象会…

AI广告爆发元年,心动网络能否成下一个Applovin?

如果说2023年标志着AI大模型技术的崛起&#xff0c;那么2024年无疑是AI广告应用爆发的元年。 大洋彼岸的Applovin凭借着智能广告分发引擎完成彻底翻身&#xff0c;股价上涨超过30倍。一跃成为AI领域乃至整个美股市场的明星。 与此同时&#xff0c;心动网络作为同样深耕于游戏…

基于Python3编写的Golang程序多平台交叉编译自动化脚本

import argparse import os import shutil import sys from shutil import copy2from loguru import loggerclass GoBuild:"""一个用于构建跨平台执行文件的类。初始化函数&#xff0c;设置构建的主文件、生成的执行文件名称以及目标平台。:param f: 需要构建的…

java全栈day20--Web后端实战(Mybatis基础2)

一、Mybatis基础 1.1辅助配置 配置 SQL 提示。 默认在 mybatis 中编写 SQL 语句是不识别的。可以做如下配置&#xff1a; 现在就有sql提示了 新的问题 产生原因&#xff1a; Idea 和数据库没有建立连接&#xff0c;不识别表信息 解决方式&#xff1a;在 Idea 中配置 MySQL 数…

MacOS下PostIn安装配置指南

PostIn是一款开源免费的接口管理工具&#xff0c; 下面介绍私有部署版本的MacOS下安装与配置。私有部署版本更适合有严格数据安全要求的企业&#xff0c;实现对数据和系统的完全控制。 &#xfeff; &#xfeff; 1、MacOS服务端安装 Mac安装包下载地址&#xff1a;下载Mac安…

【Apache Doris】周FAQ集锦:第 26 期

SQL问题 Q1 doris 3.0存算分离模式下&#xff0c;建表的时是否需要指定表的副本数 不需要&#xff0c;指定了也会忽略&#xff1b;存算分离模式下&#xff0c;数据副本由远端存储去管控。 Q2 doris 通过dbeaver查询时报错&#xff1a;[SXXXX]… doris的错误码通常都是EXXXX&…

【Mongo工具】Mongo迁移工具之Mongo-shake

Mongo-Shake 简介 Mongo-Shake 是一个基于 MongoDB 操作日志&#xff08;oplog&#xff09;的通用服务平台。它从源 MongoDB 数据库中获取操作日志&#xff0c;并在目标 MongoDB 数据库中重放&#xff0c;或者通过不同的隧道发送到其他终端。如果目标端是 MongoDB 数据库&…

【Unity基础】AudioSource 常用方法总结

在 Unity 中&#xff0c;AudioSource 组件用于控制音频的播放和管理。以下是常用的 AudioSource 控制方法及其说明。 1. 播放和暂停音频 Play()&#xff1a;开始播放音频&#xff0c;如果是从暂停的地方继续播放&#xff0c;可以直接调用。Pause()&#xff1a;暂停当前播放的…

flink SQL实现mysql source sink

接上文&#xff1a;一文说清flink从编码到部署上线 环境说明&#xff1a;MySQL&#xff1a;5.7&#xff1b;flink&#xff1a;1.14.0&#xff1b;hadoop&#xff1a;3.0.0&#xff1b;操作系统&#xff1a;CentOS 7.6&#xff1b;JDK&#xff1a;1.8.0_401。 1.代码实现 1.1 E…

知乎 PB 级别 TiDB 数据库集群管控实践

以下文章来源于知乎技术专栏 &#xff0c;作者代晓磊 导读 在现代企业中&#xff0c;数据库的运维管理至关重要&#xff0c;特别是面对分布式数据库的复杂性和大规模集群的挑战。作为一款兼容 MySQL 协议的分布式关系型数据库&#xff0c;TiDB 在高可用、高扩展性和强一致性方…

SpringBoot+Vue3实现阿里云视频点播 实现教育网站 在上面上传对应的视频,用户开会员以后才能查看视频

要使用阿里云视频点播&#xff08;VOD&#xff09;实现一个教育网站&#xff0c;其中用户需要成为会员后才能查看视频&#xff0c;这个过程包括上传视频、设置权限控制、构建前端播放页面以及确保只有付费会员可以访问视频内容。 1. 视频上传与管理 创建阿里云账号&#xff…

【前端】 async 和 await 以及 generator生成器函数

一、背景 这一篇随机主要是想记录一下自己学习js中有关异步内容的东西。然后发现有人拿异步跟生成器函数进行比较了一下&#xff0c;因此一起学习了一下。 二、知识点相关内容及实验test 2.1 generator 生成器函数 generator函数的作用&#xff1a;每次访问返回函数中yield…

智能座舱进阶-应用框架层-Handler分析

首先明确&#xff0c; handler是为了解决单进程内的线程之间的通信问题的。我也需要理解Android系统中进程和线程的概念&#xff0c; APP启动后&#xff0c;会有三四个线程启动起来&#xff0c;其中&#xff0c;有一条mainUITread的线程&#xff0c;专门用来处理UI事件&#xf…

windows openssl编译x64版libssl.lib,编译x64版本libcurl.lib,支持https,vs2015编译器

不要纠结&#xff0c;直接选择用perl编译&#xff01; 告诫想要用弄成vs编译版的&#xff0c;暂时先别给自己增加麻烦 告诫&#xff0c;以下执行的每一步&#xff0c;都不要纠结 先安装环境 nasm 64位版本 https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/win64/nasm-…