首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OxyPlot:一个功能强大、漂亮.Net跨平台开源绘图库

推荐一个支持多平台、多框架的.Net绘图库。

01

项目简介

OxyPlot是一个基于.NET开发的、跨平台的绘图库,可用于多种平台和框架,如WPF、Windows 8、Windows Phone、Windows Phone Silverlight、Windows Forms、Silverlight、GTK#、Xwt、Xamarin.iOS、Xamarin.Android、Xamarin.Forms和Xamarin.Mac等。它提供了丰富的绘图功能,可以用于创建各种类型的图表,如折线图、柱状图、饼图、散点图等。

02

使用方法

1、安装依赖库

Install-Package OxyPlot.Core

Install-Package OxyPlot.Core.Drawing

2、示例代码

using OxyPlot;using OxyPlot.Axes;using OxyPlot.Core.Drawing;using OxyPlot.Series;

class Program{ static void Main(string[] args) { var outputToFile = "test-oxyplot-static-export-file.png"; var outputExportStreamOOP = "test-oxyplot-ExportToStream.png"; var outputExportFileOOP = "test-oxyplot-ExportToFile.png";

var width = 1024; var height = 768; var background = OxyColors.LightGray; var resolution = 96d;

var model = BuildPlotModel();

// 使用静态方法导出到文件 PngExporter.Export(model, outputToFile, width, height, resolution);

// 使用实例方法导出 using (var stream = new MemoryStream()) { var pngExporter = new PngExporter { Width = width, Height = height, Resolution = resolution }; pngExporter.Export(model, stream); System.IO.File.WriteAllBytes(outputExportStreamOOP, stream.ToArray()); }

var pngExporter2 = new PngExporter { Width = width, Height = height, Resolution = resolution }; var bitmap = pngExporter2.ExportToBitmap(model); bitmap.Save(outputExportFileOOP, System.Drawing.Imaging.ImageFormat.Png); bitmap.Save(Path.ChangeExtension(outputExportFileOOP, ".gif"), System.Drawing.Imaging.ImageFormat.Gif); }

private static IPlotModel BuildPlotModel() { var rand = new Random(21);

var model = new PlotModel { Title = "蛋糕类型受欢迎程度" };

var cakePopularity = Enumerable.Range(1, 5).Select(i => rand.NextDouble()).ToArray(); var sum = cakePopularity.Sum(); var barItems = cakePopularity.Select(cp => RandomBarItem(cp, sum)).ToArray(); var barSeries = new BarSeries { ItemsSource = barItems, LabelPlacement = LabelPlacement.Base, LabelFormatString = "{0:.00}%" };

model.Series.Add(barSeries);

model.Axes.Add(new CategoryAxis { Position = AxisPosition.Left, Key = "CakeAxis", ItemsSource = new[] { "Apple cake", "Baumkuchen", "Bundt Cake", "Chocolate cake", "Carrot cake" } }); return model; }

private static BarItem RandomBarItem(double cp, double sum) => new BarItem { Value = cp / sum * 100, Color = RandomColor() };

private static OxyColor RandomColor() { var r = new Random(); return OxyColor.FromRgb((byte)r.Next(255), (byte)r.Next(255), (byte)r.Next(255)); }}

3、效果

03

部分绘图效果

1、折线图

2、柱状图

3、热图

4、饼图

5、三角函数

04

项目地址

https://github.com/oxyplot/oxyplot

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Of4X_XLlQBrMqoDqW-_vXeZQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券