折线图的绘制

折线图的绘制

折线图的绘制:折线图的绘制有很多中方法,很多平台都提供了相应的类库,我这里就简介两种类库的简单使用(OxyPlot、DynamicDataDisplay)。当然也可以不依赖类库,自定义画图类,完成这一绘图工作。如有需要请参考博客“自定义类绘制折线图”

  • OxyPlot下载
  • OxyPlot使用说明
  • DynamicDataDisplay下载
  • DynamicDataDisplay使用说明
  • Demo下载

OxyPlot下载

OxyPlot 是 一个 .NET 跨平台的绘图组件。点击下载库文件

OxyPlot使用说明

布局参考,使用之前记得导入 xmlns:oxy=”http://oxyplot.org/wpf”。

<oxy:Plot x:Name="myPlot" Margin="0,0,0,162"   >  
        <oxy:Plot.Axes>
            <oxy:LinearAxis x:Name="plotY"  Position="Left" MajorGridlineStyle="Solid" MinorGridlineStyle="Dot" TickStyle="None"   Maximum="50" MajorStep="10" />
            <oxy:LinearAxis x:Name="plotX" Position="Bottom"   MajorGridlineStyle="Solid" MinorGridlineStyle="Dot"  TickStyle="None" Maximum="60"  MajorStep="10"/>
            </oxy:Plot.Axes  >
            <oxy:LineSeries x:Name="plotTemp" Color="Red" ItemsSource="{Binding TempData}"/>
</oxy:Plot>

这里布局文件定义了一个控件名myPlot、Y轴plotY,x轴plotX,数据线plotTemp”,其中TempData为要绑定的数据值;

初始化的时候,要定义数据值的列表集合

private List<DataPoint> TempData = new List<DataPoint>(); 

其中:DataPoint 为数据线结合的数据点坐标值(x,y);

Plot类的InvalidatePlot(bool )用来指定是否刷新数据。
效果图:
这里写图片描述

DynamicDataDisplay下载

点击下载库文件

DynamicDataDisplay使用说明

同样的,在XMAL文件中首先添加引用http://research.microsoft.com/DynamicDataDisplay/1.0
之后构造图表,相对于OxyPlot较简单。

 <d3:ChartPlotter x:Name="ch" Margin="54,32,59.6,41" ></d3:ChartPlotter>

使用时,后台需要添加引用

Microsoft.Research.DynamicDataDisplay;
Microsoft.Research.DynamicDataDisplay.DataSources;

折线图数据源

ObservableDataSource<Point> 

方法:

AppendAsync(Dispatcher dis, Point  point) 将点写入数据源

参数方法

ch1.Viewport.Visible
对象: Rect(double x,doubley,double wdith, double height)  //(原点x,原点y,宽,高)

参考示例:

 ch.Viewport.Visible = new Rect(0, 0, 20, 40);
 ch.AddLineGraph(source, Colors.Blue, 1, "温度");

//虚拟数据源
tem = Convert.ToDouble(random.Next(10,15));

Point p = new Point();
p.X = x;
x++;
p.Y = tem;
source.AppendAsync(Dispatcher, p);
if (x > 10)
{
   ch.Viewport.Visible = new Rect(x - 10, 0, 20, 40);
}

效果图:
这里写图片描述

Demo下载

参考以上说明如果还有问题请留言,或者下载Demo

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋洋脚踝的金铃响了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值