【WPF】 OxyPlot图表控件学习
最近在学习OxyPlot图表控件,一些基本的学习心得,在这里记录一下,方便以后进行查找。

xmlns:oxy="http://oxyplot.org/wpf"
1 <Grid>
2 <oxy:PlotView Model="{Binding Model}" />
3 </Grid>
1 private PlotModel model;
2 public PlotModel Model
3 {
4 get { return model; }
5 set { SetProperty(ref model, value); }
6 }
1 Private void GetLine()
2 {
3 var tmp = new PlotModel
4 {
5 Title = "Demo", //图表的Titile
6 Subtitle = "直线" //图表的说明
7 };
8 var series2 = new LineSeries
9 {
10 Title = "Series 2", //线的说明
11 MarkerType = MarkerType.Square //标记点 的类型、形状
12 };
13 series2.Points.Add(new DataPoint(0, 0));//添加线的第一个点坐标
14 series2.Points.Add(new DataPoint(4, 4));//添加线的第二个点的坐标
15 tmp.Series.Add(series2);//将线添加到图标的容器中
16 this.Model = tmp;//赋值
17 }

1 Private void GetSpline()
2 {
3 var lineSeries1 = new LineSeries { Title = "Series 1", MarkerType = MarkerType.Circle };
4 //画曲线主要是需要将线的 InterpolationAlgorithm 属性 设置为 CanonicalSpline 就可变成曲线
5 lineSeries1.InterpolationAlgorithm = InterpolationAlgorithms.CanonicalSpline;
6 lineSeries1.Points.Add(new DataPoint(0, 20));
7 lineSeries1.Points.Add(new DataPoint(10, 21));
8 lineSeries1.Points.Add(new DataPoint(20, 24));
9 lineSeries1.Points.Add(new DataPoint(30, 22));
10 lineSeries1.Points.Add(new DataPoint(40, 17));
11 lineSeries1.Points.Add(new DataPoint(50, 21));
12 lineSeries1.Points.Add(new DataPoint(60, 23));
13 lineSeries1.Points.Add(new DataPoint(70, 27));
14 lineSeries1.Points.Add(new DataPoint(80, 27));
15 lineSeries1.Points.Add(new DataPoint(90, 22));
16 lineSeries1.Points.Add(new DataPoint(100, 25));
17 tmp.Series.Add(lineSeries1);
18 this.Model = tmp;
19 }

1 Private void GetSpline()
2 {
3 //将线进行填充 ,主要是将线的类型改为 AreaSeries 即可 但是此时是不会显示Mark点
4 var lineSeries1 = new AreaSeries { Title = "Series 1", MarkerType = MarkerType.Circle };
5
6 //画曲线主要是需要将线的 InterpolationAlgorithm 属性 设置为 CanonicalSpline 就可变成曲线
7 lineSeries1.InterpolationAlgorithm = InterpolationAlgorithms.CanonicalSpline;
8 lineSeries1.Points.Add(new DataPoint(0, 20));
9 lineSeries1.Points.Add(new DataPoint(10, 21));
10 lineSeries1.Points.Add(new DataPoint(20, 24));
11 lineSeries1.Points.Add(new DataPoint(30, 22));
12 lineSeries1.Points.Add(new DataPoint(40, 17));
13 lineSeries1.Points.Add(new DataPoint(50, 21));
14 lineSeries1.Points.Add(new DataPoint(60, 23));
15 lineSeries1.Points.Add(new DataPoint(70, 27));
16 lineSeries1.Points.Add(new DataPoint(80, 27));
17 lineSeries1.Points.Add(new DataPoint(90, 22));
18 lineSeries1.Points.Add(new DataPoint(100, 25));
19 tmp.Series.Add(lineSeries1);
20 this.Model = tmp;
21 }


1 var tmp = new PlotModel { Title = "Demo", Subtitle = "曲线" };
2 tmp.LegendBackground = OxyColor.FromArgb(200, 255, 255, 255);//设置背景颜色
3 tmp.LegendBorder = OxyColors.Transparent;//设置边框颜色
4 tmp.LegendOrientation = LegendOrientation.Horizontal;//设置标识对其方式
5 tmp.LegendPlacement = LegendPlacement.Outside;//设置标识在图标中的相对位置 是在里面还是在外面
6 tmp.LegendPosition = LegendPosition.BottomLeft;//设置标识在整个容器中的位置 此时是左下角
7
8 //将线进行填充 ,主要是将线的类型改为 AreaSeries 即可 但是此时是不会显示Mark点
9 var lineSeries1 = new AreaSeries { Title = "Series 1", MarkerType = MarkerType.Circle };
10 //画曲线主要是需要将线的 InterpolationAlgorithm 属性 设置为 CanonicalSpline 就可变成曲线
11 lineSeries1.InterpolationAlgorithm = InterpolationAlgorithms.CanonicalSpline;
12 lineSeries1.Points.Add(new DataPoint(0, 20));
13 lineSeries1.Points.Add(new DataPoint(10, 21));
14 lineSeries1.Points.Add(new DataPoint(20, 24));
15 lineSeries1.Points.Add(new DataPoint(30, 22));
16 lineSeries1.Points.Add(new DataPoint(40, 17));
17 lineSeries1.Points.Add(new DataPoint(50, 21));
18 lineSeries1.Points.Add(new DataPoint(60, 23));
19 lineSeries1.Points.Add(new DataPoint(70, 27));
20 lineSeries1.Points.Add(new DataPoint(80, 27));
21 lineSeries1.Points.Add(new DataPoint(90, 22));
22 lineSeries1.Points.Add(new DataPoint(100, 25));
23 tmp.Series.Add(lineSeries1);
24 this.Model = tmp;

1 var tmp = new PlotModel { Title = "Demo", Subtitle = "曲线" };
2 tmp.LegendBackground = OxyColor.FromArgb(200, 255, 255, 255);//设置背景颜色
3 tmp.LegendBorder = OxyColors.Transparent;//设置边框颜色
4 tmp.LegendOrientation = LegendOrientation.Horizontal;//设置标识对其方式
5 tmp.LegendPlacement = LegendPlacement.Outside;//设置标识在图标中的相对位置 是在里面还是在外面
6 tmp.LegendPosition = LegendPosition.BottomLeft;//设置标识在整个容器中的位置 此时是左下角
7
8 //line1
9 //将线进行填充 ,主要是将线的类型改为 AreaSeries 即可 但是此时是不会显示Mark点
10 var lineSeries1 = new AreaSeries { Title = "Series 1", MarkerType = MarkerType.Circle };
11 //画曲线主要是需要将线的 InterpolationAlgorithm 属性 设置为 CanonicalSpline 就可变成曲线
12 lineSeries1.InterpolationAlgorithm = InterpolationAlgorithms.CanonicalSpline;
13 lineSeries1.Points.Add(new DataPoint(0, 20));
14 lineSeries1.Points.Add(new DataPoint(10, 21));
15 lineSeries1.Points.Add(new DataPoint(20, 24));
16 lineSeries1.Points.Add(new DataPoint(30, 22));
17 lineSeries1.Points.Add(new DataPoint(40, 17));
18 lineSeries1.Points.Add(new DataPoint(50, 21));
19 lineSeries1.Points.Add(new DataPoint(60, 23));
20 lineSeries1.Points.Add(new DataPoint(70, 27));
21 lineSeries1.Points.Add(new DataPoint(80, 27));
22 lineSeries1.Points.Add(new DataPoint(90, 22));
23 lineSeries1.Points.Add(new DataPoint(100, 25));
24 tmp.Series.Add(lineSeries1);
25
26 //Line2
27 var series2 = new LineSeries { Title = "Series 2", MarkerType = MarkerType.Square };
28 series2.Points.Add(new DataPoint(0, 0));
29 series2.Points.Add(new DataPoint(4, 4));
30 series2.Points.Add(new DataPoint(10, 12));
31 series2.Points.Add(new DataPoint(20, 16));
32 series2.Points.Add(new DataPoint(30, 25));
33 series2.Points.Add(new DataPoint(40, 5));
34 tmp.Series.Add(series2);
35
36 this.Model = tmp;

1 var tmp = new PlotModel { Title = "Demo", Subtitle = "曲线" };
2 tmp.LegendBackground = OxyColor.FromArgb(200, 255, 255, 255);
3 tmp.LegendBorder = OxyColors.Transparent;
4 tmp.LegendOrientation = LegendOrientation.Horizontal;
5 tmp.LegendPlacement = LegendPlacement.Outside;
6 tmp.LegendPosition = LegendPosition.BottomLeft;
7 tmp.LegendSymbolLength = 24;
8
9 var linearAxis1 = new LinearAxis();
10 linearAxis1.MajorGridlineStyle = LineStyle.Solid;
11 linearAxis1.MinorGridlineStyle = LineStyle.Dot;
12 linearAxis1.Title = "Y";
13 linearAxis1.Minimum = 0;
14 linearAxis1.Maximum = 35;
15 tmp.Axes.Add(linearAxis1);
16
17 var linearAxis2 = new LinearAxis();
18 linearAxis2.MajorGridlineStyle = LineStyle.Solid;
19 linearAxis2.MinorGridlineStyle = LineStyle.Dot;
20 linearAxis2.Position = AxisPosition.Bottom;
21 linearAxis2.Title = "X";
22 tmp.Axes.Add(linearAxis2);
23
24 var lineSeries1 = new LineSeries { Title = "Series 1", MarkerType = MarkerType.Circle };
25 lineSeries1.LabelFormatString = "{1}";
26 lineSeries1.Points.Add(new DataPoint(0, 20));
27 lineSeries1.Points.Add(new DataPoint(10, 21));
28 lineSeries1.Points.Add(new DataPoint(20, 24));
29 lineSeries1.Points.Add(new DataPoint(30, 22));
30 lineSeries1.Points.Add(new DataPoint(40, 17));
31 lineSeries1.Points.Add(new DataPoint(50, 21));
32 lineSeries1.Points.Add(new DataPoint(60, 23));
33 lineSeries1.Points.Add(new DataPoint(70, 27));
34 lineSeries1.Points.Add(new DataPoint(80, 27));
35 lineSeries1.Points.Add(new DataPoint(90, 22));
36 tmp.Series.Add(lineSeries1);
37
38 var series2 = new LineSeries { Title = "Series 2", MarkerType = MarkerType.Square };
39 series2.Points.Add(new DataPoint(0, 0));
40 series2.Points.Add(new DataPoint(4, 4));
41 series2.Points.Add(new DataPoint(10, 12));
42 series2.Points.Add(new DataPoint(20, 16));
43 series2.Points.Add(new DataPoint(30, 25));
44 series2.Points.Add(new DataPoint(40, 5));
45
46 tmp.Series.Add(series2);
47 this.Model = tmp;

【WPF】 OxyPlot图表控件学习的更多相关文章
- WPF 曲线图表控件(自制)(二)
原文:WPF 曲线图表控件(自制)(二) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/koloumi/article/details/775218 ...
- WPF 曲线图表控件(自制)(一)
原文:WPF 曲线图表控件(自制)(一) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/koloumi/article/details/775092 ...
- WPF Visifire 图表控件
Visifire WPF 图表控件 破解 可能用WPF生成过图表的开发人员都知道,WPF虽然本身的绘图能力强大,但如果每种图表都自己去实现一次的话可能工作量就大了, 尤其是在开发时间比较紧的情况下.这 ...
- C# WPF DevExpress 图表控件之柱状图
说明:DevExpress版本是17.1.VS是2015. XAML: <!--#region 图表控件--> <dxc:ChartControl x:Name="char ...
- WPF 自定义UI控件学习
最近项目中运用到了WPF处理三维软件,在C/S结构中WPF做UI还是有很多优越性,简单的学了一点WPF知识,成功的完成项目目标.项目过度阶段对于WPF的一些基本特点有了进一步了解 .至此花费一点时间研 ...
- 图表控件== 百度 echarts的入门学习
花了3天的时间 去学习跟试用之前两款的图表控件 hightcharts(商业,人性化,新手非常方便试用,图表少了点) 跟chartjs==>搭配vue更好 控件,整体而言都还可以. http:/ ...
- Visifire For WPF 图表控件 如何免费
可能用WPF生成过图表的开发人员都知道,WPF虽然本身的绘图能力强大,但如果每种图表都自己去实现一次的话可能工作量就大了, 尤其是在开发时间比较紧的情况下.这时候有必要借助一种专业的图表工具. Vis ...
- 图表控件的学习===》hightChart 和 Chartjs的使用
hightChart : 比较旧的图表控件 商业需要授权 Chartjs 免费开源 刚开始使用了下 hightchart 然后参考示例 建了对应的参数配置的类, 也顺利的集合到后台动态传输. 后 ...
- ASP.NET Core MVC TagHelper实践HighchartsNET快速图表控件-开源
ASP.NET Core MVC TagHelper最佳实践HighchartsNET快速图表控件支持ASP.NET Core. 曾经在WebForms上写过 HighchartsNET快速图表控件- ...
随机推荐
- 将base64Url对应图片保存到本地
上图中的内容就是base64编码之后对应的Url 图中base64,之前的都是用于声明该图片的格式以及它的编码格式 base64,之后的就是该图片对应的数据了 我们只需要把数据转换为字节保存下来即 ...
- [IOI2005]mea
IOI 读完题,感觉这个题并不是很难,那我是不是可以去IOI了: 最先考虑暴力,发现完全行不通,所以,我们考虑其他方法.突然发现:其实在确定 \(s_1\) 的时候,整个序列就可以确定了,所以我们考虑 ...
- OpenSUSE Leap 42.1 KDE Ultmate Linux Distribution终极Linux系统试用与SSH连接
系统安装环境: #一台旧笔记本电脑 #CPU Intel(R) Core(TM) i3 M 380 2.53GHz (4核) #内存 1G #硬盘存储 250G #系统型号 OpenSUSE Leap ...
- 【动画消消乐 】仿ios、android中常见的一个loading动画 074
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...
- Vue+SpringBoot前后端分离中的跨域问题
在前后端分离开发中,需要前端调用后端api并进行内容显示,如果前后端开发都在一台主机上,则会由于浏览器的同源策略限制,出现跨域问题(协议.域名.端口号不同等),导致不能正常调用api接口,给开发带来不 ...
- 『Java』Collection接口 Collections类
接口Collection public interface Collection<E>定义了所有单列集合中共性的方法,所有的单列集合都可以使用共性方法. Collection的常用子接口有 ...
- 关于Feign、Jackson、RabbitMQ、Jrebel插件的开发中遇到的问题
在工作实际开发中需要开发一个消息模块对外提供统一的接口feign调用提供消息加载到MQ队列的服务,采用泛型的形式. 刚开始搭建好之后,正好需要做一个全局的日志添加到zuul网关中,通过网关feign ...
- C++小知识——显示VS大括号/花括号折叠按钮
这个功能默认是关闭的,打开路径如下: 将大纲语句块改为"True" 这个功能其实很有必要真不知道为啥默认要关闭这个功能. 站在巨人的肩膀上的思想,其实已经在互联网程序员之间深入人心 ...
- SpringBoot开发二十-私信列表
私信列表功能开发. 发送私信功能开发 首先创建一个实体类:Message package com.nowcoder.community.entity; import java.util.Date; p ...
- STP规则
1)每个网络的有且只有一个桥根 2)每个非桥根有且只有一个根端口: 3)每条链路有且只有一个指定端口: 4)根桥的所有端口均为指定端口: 5)根端口和指定端口都是forwading: 6)阻塞端口为B ...