WPF动态折线图
此项目源码下载地址:https://github.com/lizhiqiang0204/WpfLineChartV1.1
效果图如下:

此项目把折线图制作成了一个控件,在主界面设置好参数直接调用即可,下面是主程序片段
public MainWindow()
{
InitializeComponent();
userControl1_Para.xGrap = ;//设置X轴相邻采集点的间隔
userControl1_Para.xGrapLable = ;//设置X轴时间标签的间隔
userControl1_Para.xGrapLablePoint = userControl1_Para.xGrapLable/ userControl1_Para.xGrap;//相邻两个时间标签内有多少个采集点
userControl1_Para.xWidth = userControl.Width - ;
userControl1_Para.yGrap = -;
userControl1_Para.yStartValue = ;
userControl1_Para.yGrapLable = ;
userControl1_Para.yLables = ((int)userControl.Height - ) / userControl1_Para.yGrapLable;
userControl.myCanvasInit(userControl1_Para); }
private void timer_Tick(object sender, EventArgs e)
{
y = y + 0.1; //随机生成Y坐标
//collectPoint.point = new Point(i, (new Random()).Next(0, 100));
collectPoint.point = new Point(x, Math.Sin(y)*+);
collectPoint.curTime = DateTime.Now;
userControl.AddPoint1(collectPoint);
}
类库添加点的函数
public void AddPoint1(CollectPoint collectPoint)
{
x = x + userControl1_Para.xGrap;
collectPoint.point.X = x; //移动背景不移动点
double xMove = collectPoint.point.X * (-) + userControl1_Para.xWidth;
_myPolyline.Points.Add(collectPoint.point);//添加新的数据点
_myCanvas.Margin = new Thickness(xMove, , , );//设置外边距实现移动,放大缩小 //移动X轴标签背景
TextBlock xText = new TextBlock();
xText.Visibility = Visibility.Hidden;
xText.SetValue(Grid.RowProperty, ); //设置按钮所在Grid控件的行
xGrid.Children.Add(xText);//为每个点添加对应的时间值
xText.Text = collectPoint.curTime.ToString("HH:mm:ss");
xText.Margin = new Thickness(collectPoint.point.X, , , );
collectPoints.Add((new CollectPoint() { point = collectPoint.point, curTime = collectPoint.curTime }));
xLableCanvas.Margin = new Thickness(xMove, , , );//设置外边距实现移动,放大缩小 if (xMove % userControl1_Para.xGrapLable == )
xText.Visibility = Visibility.Visible; if (collectPoint.point.X > userControl1_Para.xWidth)
{
_myPolyline.Points.RemoveAt();
collectPoints.RemoveAt();
xGrid.Children.RemoveAt();
}
}
本人也是新手,代码规范写的不是很好,见谅!
WPF动态折线图的更多相关文章
- achartengine画出动态折线图
achartengine画出动态折线图的效果最近有个项目需要用到实时曲线图,我也上网搜索了一下,最后还是选择使用achartengine这个现成的东西,毕竟自己再canvas一下实在是太麻烦,而且项目 ...
- 模拟Windows任务管理器CPU使用率的动态折线图-农夫山泉
Delphi的TCanvas类可以实现各种复杂的图形输出功能,基于近期项目的需求,利用它实现了一个很炫的动态折线图(模拟了资源管理器中CPU使用率的折线图),可以直观地展现出数值的实时变化情况. 这段 ...
- 原生JS实现动态折线图
原生JS实现动态折线图 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> & ...
- 开发成功-cpu-mem监控动态折线图--dom esayui js java
jsp ------------------------------------------------------------------------------------------- ---- ...
- Echarts 动态折线图
<script src="http://echarts.baidu.com/build/dist/echarts-all.js"></script>< ...
- WPF、Silverlight项目中使用柱状图、饼状图、折线图
在开发的过程中,可能会遇到柱状图.饼状图.折线图来更好的显示数据,最近整理了一下,遂放出来望需要的朋友可以参考.本文仅仅是简单显示,如需复杂显示效果请参考官网代码示例.----本文代码使用WPF,Si ...
- PHP实现动态生成饼状图、柱状图和折线图(转载)
PHP在图像操作方面的表现非常出色,我们只需借助可以免费得到的GD库便可以轻松实现图.表勾画.下面将分别介绍PHP实现的饼状图.折线图和柱状图以 及他们的使用方法,这几段代码的特点就是不需要再把它们复 ...
- ECharts使用—折线图动态加载
最近需求中用到折线图,单线条,多线交错,之前是散点图,用的是另一个 amcharts.js,这个文档也能找的到,回归早本次重点:ECharts 一.首先引入echarts.common.min.js文 ...
- ECharts动态获取后台传过来的json数据进行多个折线图的显示,折线的数据由后台传过来
ECharts 多个折线图动态获取json数据 效果图如下: 一.html部分 <p id="TwoLineChart" style="width:100%; he ...
随机推荐
- 清北学堂模拟赛d5t6 cube
题面有误!10,11,12操作类别为A,13,14,15类别为B,16,17,18类别为C. 分析:一道大暴力,每次记录一下走了多少步,上一步操作类别是啥就可以了.最后只需要写6种操作,每一次操作进行 ...
- [bzoj4025]二分图_LCT
二分图 bzoj-4025 题目大意:给定一个n个节点的图,m条边,每条边有一个产生时间和一个删除时间,询问所有时间点是否是连通图. 注释:$1\le n\le 10^5$,$1\le m\le 2\ ...
- N天学习一个linux命令之rsync
用途 主要用于本地和远程主机同步文件 特性 1 使用增量传输算法(delta-transfer algorithm) 2 支持ssh,rsync协议 3 可以用于本地同步文件 4 本地和远程主机都需要 ...
- 【原创】TCP超时重传机制探索
TCP超时重传机制探索 作者:tll (360电商技术) 1)通信模型 TCP(Transmission Control Protocol)是一种可靠传输协议.在传输过程中当发送方(sender)向接 ...
- VCenter中嵌套openstack VM不能ping通外部网络问题解决的方法
问题描写叙述: 近期搭建了vCenter环境,并使用vCenter创建的VM搭建了一套openstack环境.在验证openstack的外网功能时.发现报文死活ping不通外网,抓包发现报文在vcen ...
- Java 7 可执行的 Nashorn,取代 Rhino
惊现有人把 OpenJDK 上的 Nashorn dump 下来,使得 Java 7 都能够使用.源代码在 https://bitbucket.org/ramonza/nashorn-backport ...
- effective C++ 读书笔记 条款11
条款11: 在operator= 中处理"自我赋值" 在实现operator=时考虑自我赋值是必要的就像 x=y .我们不知道变量x与y代表的值是否为同一个值(把x和y说成是一个指 ...
- Android 下使用opencv
两种方式: 1.java API 2.Native/C++ 方式,OpenCV.mk中默认使用动态库的方式链接opencv,设置OPENCV_LIB_TYPE:=STATIC 以静态库方式调用 htt ...
- MySQL SQL优化教程
转自:https://www.cnblogs.com/duanxz/archive/2013/02/01/2889413.html 一,查询SQL执行效率 通过show status命令了解各种SQL ...
- 用Thymeleaf在前台下拉列表取值
转自:https://blog.csdn.net/u013600907/article/details/76165748