ScottPlot使用笔记

安装

WPF:

Install-Package ScottPlot.WPF

Avalonia:

Install-Package ScottPlot.Avalonia

相关网站

https://github.com/ScottPlot/ScottPlot
https://scottplot.net/

调研情况

ScottPlot调研情况:
目前可以用ScottPlot来绘制基本的曲线图,柱形图,饼图,雷达图。

ScottPlot最新的是5.X版本,也是目前的主要版本。
上一个大版本是4.X版本,不过应该不怎么推荐使用了,两个版本的控件名称和API这些差异很大。
网上搜资料,经常查到的是老版本的资料,对功能调研有不少影响。
ScottPlot本身支持多种平台,包括WinForms、WPF、Avalonia等平台。
本身跟Oxyplot一样,也是基于SkiaSharp开发的,两个控件的性能差不多。

细节上如果真正使用的话,还有不少东西需要调研:
1、雷达图,几个指标的上限是以传入的数值里的最大值作为上限的。这样可能[1,1,1,1,1]和[5,5,5,5,5]看起来是一样的。
2、雷达图上不知道如何显示每个指标的具体值。
3、柱形图和饼图上选项和值的标注。

示例代码

曲线图

xmlns:ScottPlot="clr-namespace:ScottPlot.WPF;assembly=ScottPlot.WPF"

<ScottPlot:WpfPlot x:Name="WpfPlot1" />
double[] dataX = { 1, 2, 3, 4, 5 };
double[] dataY = { 1, 4, 9, 16, 25 };
WpfPlot1.Plot.Add.Scatter(dataX, dataY);
WpfPlot1.Refresh();

柱形图

xmlns:ScottPlot="clr-namespace:ScottPlot.WPF;assembly=ScottPlot.WPF"

<ScottPlot:WpfPlot x:Name="WpfPlot1" />
var myPlot = WpfPlot1.Plot;

// add bars
double[] values = { 5, 10, 7, 13 };
myPlot.Add.Bars(values);

// tell the plot to autoscale with no padding beneath the bars
myPlot.Axes.Margins(bottom: 0);

饼图

var myPlot = WpfPlot1.Plot;

double[] values = { 5, 2, 8, 4, 8 };
var pie = myPlot.Add.Pie(values);
//pie.ExplodeFraction = .1;

雷达图

var myPlot = WpfPlot1.Plot;
myPlot.Font.Set(SKFontManager.Default.MatchCharacter('汉').FamilyName);
var series = new RadarSeries()
{
    Values = new double[] { 4, 4, 3, 2, 3 },
    Label = "Green",
    FillColor = ScottPlot.Colors.Green.WithAlpha(.5),
};
var radar = myPlot.Add.Radar(new RadarSeries[] { series });
radar.Labels = new string[] { "指标1", "指标2", "指标3", "指标4", "指标5" }
    .Select(s => new LabelStyle() { Text = s, Alignment = Alignment.MiddleCenter })
    .ToArray();

//myPlot.Axes.Frameless();
//myPlot.Axes.Margins(0.1, 0.1);
//myPlot.HideGrid();
myPlot.HideLegend();

FAQ

中文显示乱码

myPlot.Font.Set(SKFontManager.Default.MatchCharacter('汉').FamilyName);
posted @   wzwyc  阅读(1597)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示