2 Star 1 Fork 0

lei/ScottPlot5BlazorWebAssembly

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

ScottPlot5测试

BlazorWebAssembly

步骤

  1. 使用.Net8创建Web工程并选择混合渲染模式
  2. Client工程引用如下三个包
<PackageReference Include="ScottPlot.Blazor" Version="5.0.18" />
<PackageReference Include="SkiaSharp" Version="2.88.7" />
<PackageReference Include="SkiaSharp.Views.Blazor" Version="2.88.7" />
  1. 写代码
  2. 启动BlazorApp1工程

效果

ScottPlot On Blazor WebAssembly

已知问题

  1. 中文显示异常

Avalonia ScottPlot

Avalonia是.Net跨平台的UI库,支持Windows,Linux,iOS,MacOS,Android; ScottPlot为跨平台的UI控件库,支持Avalonia,Windows,Eto,WebAssembly等平台

步骤

  1. 安装Avalonia For VS2022扩展
  2. 新建名为AvaScottPlot的Avalonia Cross Platform项目
  3. 将AvaScottPlot主工程及各个平台的启动工程改为.Net8
  4. AvaScottPlot工程增加如下引用
     <PackageReference Include="ScottPlot.Avalonia" Version="5.0.20" />
  1. 写代码
  2. 启动AvaScottPlot.Desktop等工程调试
  3. Linux端选择AvaScottPlot.Desktop发布为linux-x64选择单文件

效果

本人电脑配置i5-1035G1,浏览器:Chrome 120.0.6099.225,虚拟机:VMware Workstation 16.2.3 Player;曲线数量20条;

  1. Avalonia On Windows 32FPS 在这里插入图片描述

  2. Avalonia On WebAssembly FPS为1,最小化浏览器时不渲染 在这里插入图片描述

  3. Avalonia On Linux 在虚拟机中运行FPS为1 在这里插入图片描述

  4. Avalonia On Android 在这里插入图片描述

已知问题

  1. WebAssembly项目中文显示异常

ScottPlot WindowsForm

步骤

  1. 创建.Net8 WindowsForm工程
  2. 引用如下两个包
<PackageReference Include="ScottPlot.Avalonia" Version="5.0.20" />
<PackageReference Include="ScottPlot.WinForms" Version="5.0.20" />
  1. 主界面增加FormsPlot控件设置Dock为Fill,并设置窗体最大化
  2. 写代码
  3. 启动WinForm工程

主要代码

        private void Form1_Load(object? sender, EventArgs e)
        {
            if (first)
            {
                StartPlot();
            }
            first = false;
        }
        private void StartPlot()
        {
            InitLines();
            if (timer == null)
            {
                timer = new(); // 每隔1秒触发一次
                timer.Interval = 1000;
                timer.Tick += TimerElapsed;
                timer.Start();
            }
        }

        private void InitLines()
        {
            if (plot == null) return;
            // PlotFont = Fonts.Detect("实时数据");
            plot.Plot.Axes.Title.Label.Text = "RealTime Data:实时数据";
            plot.Plot.Axes.Title.Label.FontName = PlotFont;

            plot.Plot.Clear();
            Lines = new LineModel[LineCount];
            DateTime start = DateTime.Now;
            for (int i = 0; i < LineCount; i++)
            {
                Lines[i] = new LineModel();
                Lines[i].Init(i + 1, plot.Plot, start);
            }
            plot.Plot.Benchmark.IsVisible = true;
        }

        public void UpdateData(DateTime ts, double[] data)
        {
            int Min = Math.Min(data.Length, Lines.Length);
            if (Min <= 0) return;

            for (int i = 0; i < Min; i++)
            {
                UpdateData(i, ts, data[i]);
            }
            Render();
        }

        private void UpdateData(int i, DateTime ts, double latestValue)
        {
            var tmp = Lines[i];
            tmp.UpdateData(ts, latestValue);
        }

        public void Render()
        {
            plot.Plot.Axes.AutoScale();
            plot.Refresh();
        }

        private void TimerElapsed(object? sender, EventArgs e)
        {
            //InvokeAsync(() =>
            double[] data = new double[LineCount];
            for (int i = 0; i < LineCount; i++)
            {
                data[i] = Generate.RandomData.RandomNumber(100);
            }
            UpdateData(DateTime.Now, data);
        }

效果

刚启动时FPS有80,稳定后约50FPS Windows Form 效果图

已知问题

  1. Title不显示,可能设计就是这样的
MIT License Copyright (c) [year] [fullname] Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

ScottPlot5 Blazor WebAssembly 示例 运行环境.Net 8.0 ScottPlot.Blazor Version="5.0.18" 展开 收起
C# 等 4 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/leiye2017/scottplot5-blazorwebassembly.git
git@gitee.com:leiye2017/scottplot5-blazorwebassembly.git
leiye2017
scottplot5-blazorwebassembly
ScottPlot5BlazorWebAssembly
master

搜索帮助