发布时间:2026/8/25 1:14:17
ScottPlot 从零上手:.NET 数据可视化 10 分钟出第一张图 ScottPlot 从零上手.NET 数据可视化 10 分钟出第一张图【免费下载链接】ScottPlotInteractive plotting library for .NET项目地址: https://gitcode.com/gh_mirrors/sc/ScottPlot手边有一份 200 行的销售 CSV下午要交一张趋势图。想在 .NET 里做数据可视化又不想为此临时啃一套绘图 API——ScottPlot 从装包到出图10 分钟能走完。它是什么ScottPlot 是一个 MIT 协议的 .NET 开源绘图库核心包只负责把数据画成位图再往上提供 WinForms、WPF、Avalonia、Blazor 等 UI 控件包负责把图嵌进窗口并支持缩放平移。它适合要几行代码出一张图的开发者。和 LiveCharts、OxyPlot 这类库的分水岭在于底层用 SkiaSharp 自绘不依赖宿主框架的绘图原语所以同一个Plot对象既能存 PNG也能塞进任何支持 SkiaSharp 的界面。装之前确认这几项.NET SDK 8 或更高版本先dotnet --list-sdks确认核心库同时支持 .NET Framework 4.6.2 与 .NET Standard 2.0你的项目是普通类库/控制台还是 UI 项目——决定装核心包还是连带控件包NuGet 源默认指向 nuget.org公司内网换源后也能搜到 ScottPlot若要改源码仓库为 https://gitcode.com/gh_mirrors/sc/ScottPlot 本地编译 src/ScottPlot5/ScottPlot5.sln渲染走 SkiaSharpWindows/macOS 开箱即用Linux 可能需要补字体库装完直接出图命令行安装在装好的项目目录里执行下面一条命令NuGet 会解析出 SkiaSharp 等依赖并写入 csprojPackage Manager Console 里的备选是Install-Package ScottPlot。dotnet add package ScottPlot最小出图示例下面这段代码创建 600x400 的图画一条二次曲线存成 PNG运行后工作目录会出现 quickstart.png打开确认坐标轴、网格、图线都正常即算跑通。var plt new ScottPlot.Plot(600, 400); double[] xs { 1, 2, 3, 4, 5 }; double[] ys { 1, 4, 9, 16, 25 }; plt.Add.Scatter(xs, ys); plt.SaveFig(quickstart.png);能画什么、能跑在哪图表类型API折线Add.Signal散点Add.Scatter柱状Add.BarPlot箱线Add.BoxPlot蜡烛Add.OHLC热图Add.Heatmap直方图Add.Histogram饼图Add.PieUI 框架控件包WinFormsFormsPlotScottPlot.WinFormsWPFWpfPlotScottPlot.WPFAvaloniaAvaPlotScottPlot.AvaloniaBlazorBlazorPlotScottPlot.Blazor操作系统覆盖 Windows、macOS、Linux不嵌界面的场景直接用核心包存图即可。按框架初始化WinForms 初始化差异控件包是 ScottPlot.WinForms把 FormsPlot 加到窗体并 Dock 为 Fill之后通过 Plot 属性画图每次改动后调 Refresh()。var fp new ScottPlot.WinForms.FormsPlot { Dock DockStyle.Fill }; fp.Plot.Add.Scatter(xs, ys); fp.Refresh();WPF 初始化差异控件包是 ScottPlot.WPFXAML 里要声明 wpf 命名空间C# 代码改图后调 Refresh() 重绘。xmlns:wpfclr-namespace:ScottPlot.WPF;assemblyScottPlot.WPF wpf:WpfPlot NameWpfPlot1 /WpfPlot1.Plot.Add.Scatter(xs, ys); WpfPlot1.Refresh();Blazor 初始化差异控件包是 ScottPlot.Blazorrazor 里放 BlazorPlot通过 ref 取到组件后在生命周期方法里加数据它和 WPF 的关键差别是多一次组件引用和一次显式 Refresh。BlazorPlot refPlot / code { ScottPlot.Blazor.BlazorPlot Plot; protected override void OnInitialized() Plot.Plot.Add.Scatter(xs, ys); }高频坑与解法现象编译报 SkiaSharp 程序集版本冲突或 TypeLoadException。根因工程里其他包引用了不同版本的 SkiaSharp运行时加载了错的那份。一行修复用包管理器把 ScottPlot 与 ScottPlot.* 全部统一升到 5.1.x让 NuGet 一并协调 SkiaSharp 版本。现象Linux 上窗体能打开但图区空白。根因缺少 libfontconfig 等 SkiaSharp 运行库。一行修复sudo apt install libfontconfig1 fontconfig重开应用即恢复。现象百万点散点拖拽缩放明显卡顿。根因Scatter 每帧对全部点逐点连线Signal 数据源有分段 min/max 缓存同规模下开销低得多。一行修复把Add.Scatter(xs, ys)换成Add.Signal(ys)交互立刻恢复流畅。现象标题里中文或希腊字母渲染成方块。根因系统没有对应字形SkiaSharp 找不到 CJK 字体。一行修复Linux 上先装fonts-noto-cjk再在代码里把plt.Fonts.Default指定为系统中真实存在的中文字体名。延伸阅读官方文档站 scottplot.net查 API 语义、交互行为和跨框架差异以在线文档为准Cookbook 示例仓库内src/ScottPlot5/ScottPlot5 Cookbook/Recipes/按图表类型组织的可运行代码照着抄最快演示项目src/ScottPlot5/ScottPlot5 Demos/各框架下的完整交互窗口确认控件行为时可对照核心库源码src/ScottPlot5/ScottPlot5/Plottables/每个 Plottable 一个文件需要改渲染逻辑时从这里下手【免费下载链接】ScottPlotInteractive plotting library for .NET项目地址: https://gitcode.com/gh_mirrors/sc/ScottPlot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/25 3:29:24

力扣908题最小差值I:数学思维与极值调整的Python高效解法

在算法刷题的过程中,我们常常会遇到一类看似简单,实则暗藏数学巧思的题目。力扣(LeetCode)第908题「最小差值 I」就是其中的典型代表。很多同学初次看到题目描述时,可能会觉得一头雾水,或者尝试用复杂的排序…

2026/8/25 3:29:24

基于SpringBoot的校园食堂就餐推荐系统(程序+文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/25 3:29:24

大模型工具调用全解析:从原理到安全实践,构建智能助手核心能力

1. 先搞清楚“工具调用”到底在解决什么问题如果你正在接触大模型应用开发,尤其是想让它帮你查天气、订机票、发邮件,或者连接数据库、调用外部API,那你一定会遇到“工具调用”这个概念。很多人一上来就去看代码,结果被各种框架、…

2026/8/25 3:29:24

数据末日求生指南:备份恢复终极检查清单,帮助企业防患于未然

数据备份与恢复流程对于业务连续性至关重要。每个企业或个人都需要一个计划和程序来备份、保护和恢复其数据。本文提供了一个简单的检查清单,可作为模板,确保用户的文件和数据永不丢失。备份中应包含哪些文件任何备份计划中首要且可以说最重要的部分&…

2026/8/25 3:29:24

Hadoop+Spark+Hive构建智能招聘系统实战

1. 项目背景与核心价值解析在当今数据驱动的招聘市场中,企业HR和求职者都面临着"数据过载,信息不足"的困境。根据我参与过的三个企业级招聘系统改造项目的经验,传统关系型数据库在处理千万级岗位数据时,查询延迟经常超过…

2026/8/25 3:24:24

充电SAAS系统年费及小程序租售价格是怎样的

新能源充电站运营中,充电管理系统是核心工具,但许多运营商常被“SAAS系统年费多少”“小程序租售价格是否透明”等问题困扰。潍坊骏驰天下能源发展有限公司自主研发的鸢都充电程序,以“价格清晰、模式灵活”为特点,为运营商提供高…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 1:12:32

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 0:04:14

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

2026/8/25 0:04:14

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…