//设置鼠标划过折线点时不显示图例
chartControl1.CrosshairEnabled = DefaultBoolean.False;async void SetDataDeepChart(List<ChartData> list){try{#region 按采集时间分组用于创建折线//按测点名深度降序排列,第一条为Y轴最大值//var orderList = list.OrderByDescending(o => o.Name.Split('-')[1]).ToList();string name = list[0].Name;string chartName = name.Length == 4 ? name.Substring(0, 2) : name.Substring(0, 3);var newList = from fx in listwhere !string.IsNullOrEmpty(fx.Name)group fx by fx.Time.Dateinto bselect new{b.Key,Data = b};#endregion#region 添加折线图foreach (var item in newList.OrderBy(o=>o.Key)){Series series = new Series{Name = chartName + @"-" + item.Key.ToString("yyyy.MM.dd"),ValueScaleType = ScaleType.Numerical,ArgumentScaleType = ScaleType.Numerical};LineSeriesView lineSeriesView1 = new LineSeriesView{MarkerVisibility = DefaultBoolean.True};series.View = lineSeriesView1; //new LineSeriesView();//设置鼠标悬停后提示框显示格式 {S}-名称 {A}-X轴值 {V}-Y轴值series.CrosshairLabelPattern = "{S}:{A}:{V}";Series series1 = new Series{Name = chartName + @"-" + item.Key.ToString("yyyy.MM.dd"),ValueScaleType = ScaleType.Numerical,ArgumentScaleType = ScaleType.Numerical};LineSeriesView lineSeriesView2 = new LineSeriesView{MarkerVisibility = DefaultBoolean.True};series1.View = lineSeriesView2; // new LineSeriesView();//设置鼠标悬停后提示框显示格式 {S}-名称 {A}-X轴值 {V}-Y轴值series1.CrosshairLabelPattern = "{S}:{A}:{V}";var newDtos = list.Where(o => o.Time.Date == item.Key).ToList();foreach (var dto in newDtos.OrderBy(o=>o.Name)){//时间位移series.Points.Add(new SeriesPoint(_controls.FirstOrDefault(o => o.Name == dto.Name)?.Depth,dto.ChangeSum));//series.Points.Add(new SeriesPoint(dto.ChangeSum, _controls.FirstOrDefault(o=>o.Name==dto.Name)?.Depth));//时间变化速率//series1.Points.Add(new SeriesPoint(dto.ChangeV, _controls.FirstOrDefault(o => o.Name == dto.Name)?.Depth));series1.Points.Add(new SeriesPoint(_controls.FirstOrDefault(o => o.Name == dto.Name)?.Depth, dto.ChangeV));}chartControl1.Series.Add(series);chartControl2.Series.Add(series1);}#endregion#region 根据类型和等级获取控制值,累积变化量,变化速率ControlGetAllDto getAllDto = new ControlGetAllDto{ProjectKey = _project.ProjectID.ToString()};//List<ControlDto> dtos = await controlService.GetControlAll(getAllDto);//ControlDto firstDto = dtos.FirstOrDefault(o => o.TypeName == _typeName && o.Level == _level);//if (firstDto == null)//    return;#endregion#region 添加报警值和控制值的警报线var xyDiagram1 = (XYDiagram)chartControl1.Diagram;//设置鼠标滚轮时折线图随着发生变大或缩小xyDiagram1.EnableAxisXScrolling = true;xyDiagram1.EnableAxisXZooming = true;  //设置X轴显示年月日时分秒 xyDiagram1.AxisX.DateTimeScaleOptions.MeasureUnit= DateTimeMeasureUnit.Second; xyDiagram1.AxisX.Label.TextPattern= "{A:yyyy-MM-dd HH:mm:ss}"; 
                xyDiagram1.AxisX.MinorCount = 1;//刻度间隔个数为1xyDiagram1.AxisX.NumericScaleOptions.AutoGrid = false;xyDiagram1.AxisX.NumericScaleOptions.GridSpacing = 1D;//间隔为1xyDiagram1.AxisX.VisibleInPanesSerializable = "-1";xyDiagram1.AxisX.WholeRange.Auto = false;xyDiagram1.AxisX.WholeRange.AutoSideMargins = false;//string maxValue = list[0].Name.Split('-')[1];//if (_project.Name == "3#院办公大楼")//{//    xyDiagram1.AxisX.WholeRange.MaxValueSerializable = "14";//}//xyDiagram1.AxisX.WholeRange.MinValueSerializable = "0";xyDiagram1.AxisX.WholeRange.SideMarginsValue = 0D;//边界值,最大值=最大值+边界值xyDiagram1.AxisX.Reverse = true;//Y轴坐标值反转显示,即最上面是0,越往下值越大
xyDiagram1.Rotated = true;//X轴和Y轴互换即竖向画折线//ConstantLine constantLine1 = new ConstantLine//{//    AxisValueSerializable =_controls.FirstOrDefault(o=>o.Name==name).ChangeSum.ToString(),// firstDto.ChangeSum.ToString(),//    Color = Color.Yellow,//    Name = "Constant Line 1",//    ShowInLegend = false//};//constantLine1.Title.Text = _typeName = @"报警值(" + _controls.FirstOrDefault(o => o.Name == name).ChangeSum + @")";//constantLine1.Title.Alignment = ConstantLineTitleAlignment.Far;//constantLine1.Title.TextColor = Color.Red;ConstantLine constantLine2 = new ConstantLine{AxisValueSerializable = _controls.FirstOrDefault(o => o.Name == name).Value.ToString(),//firstDto.Value.ToString(),Color = Color.Red,Name = "Constant Line 2",ShowInLegend = false};// firstDto.ValueconstantLine2.Title.Text = _typeName = @"控制值(" + _controls.FirstOrDefault(o => o.Name == name).Value + @")";constantLine2.Title.Alignment = ConstantLineTitleAlignment.Far;constantLine2.Title.TextColor = Color.Red;xyDiagram1.AxisX.Title.Text = @"深度(m)";xyDiagram1.AxisX.Title.Visibility = DefaultBoolean.True;xyDiagram1.AxisY.Title.Text = @"位移(mm)";xyDiagram1.AxisY.Title.Visibility = DefaultBoolean.True;xyDiagram1.AxisY.ConstantLines.AddRange(new[]{constantLine2});#endregion#region 添加变化速率的警报线var xyDiagram2 = (XYDiagram)chartControl2.Diagram;xyDiagram2.AxisX.MinorCount = 1;//刻度间隔个数为1xyDiagram2.AxisX.NumericScaleOptions.AutoGrid = false;xyDiagram2.AxisX.NumericScaleOptions.GridSpacing = 1D;//间隔为1xyDiagram2.AxisX.VisibleInPanesSerializable = "-1";xyDiagram2.AxisX.WholeRange.Auto = false;xyDiagram2.AxisX.WholeRange.AutoSideMargins = false;//if (_project.Name == "3#院办公大楼")//{//    xyDiagram2.AxisX.WholeRange.MaxValueSerializable = "14";//}//xyDiagram2.AxisX.WholeRange.MinValueSerializable = "0";xyDiagram2.AxisX.WholeRange.SideMarginsValue = 0D;//边界值,最大值=最大值+边界值xyDiagram2.AxisX.Reverse = true;//Y轴坐标值反转显示,即最上面是0,越往下值越大xyDiagram2.Rotated = true;//X轴和Y轴互换即竖向画折线
xyDiagram2.AxisX.Title.Text = @"深度(m)";xyDiagram2.AxisX.Title.Visibility = DefaultBoolean.True;xyDiagram2.AxisY.Title.Text = @"变化率(mm/d)";xyDiagram2.AxisY.Title.Visibility = DefaultBoolean.True;ConstantLine constantLine3 = new ConstantLine{AxisValueSerializable = _controls.FirstOrDefault(o => o.Name == name).ChangeV.ToString(),//firstDto.ChangeV.ToString(),Color = Color.Red,Name = "Constant Line 3",ShowInLegend = false};constantLine3.Title.Text = @"变化速率(" + _controls.FirstOrDefault(o => o.Name == name).ChangeV + @")";constantLine3.Title.Alignment = ConstantLineTitleAlignment.Far;constantLine3.Title.TextColor = Color.Red;xyDiagram2.AxisY.ConstantLines.AddRange(new[]{constantLine3});#endregion}catch (Exception ex){FileLogUtility.Error(ex);}}

转载于:https://www.cnblogs.com/ljy0905/p/6898695.html

chartContrl 折线图添加报警线和一些其他设置 放大缩小折线图等相关推荐

  1. R语言patchwork包将多个ggplot2可视化结果组合起来、使用plot_annotation函数为组合图添加标题信息、使用theme函数自定义组合图中的字体类型(family)

    R语言patchwork包将多个ggplot2可视化结果组合起来.使用plot_annotation函数为组合图添加标题信息.使用theme函数自定义组合图中的字体类型(family) 目录

  2. matplotlib 标签_为折线图添加数据标签的方法,附代码

    #python打卡##Python数学编程##Python# 我们在使用python进行数据可视化工作时,通常使用matplotlib,主要原因是其功能强大且较为完善.稳定,而且有强大的社区活跃.另外 ...

  3. 【EXCEL】给数据添加图表(数据条、柱状图、折线图等),快速分析功能图文详解

    目录 0.环境 1.背景+简介 2.具体实现 2.1 给数据添加数据条 实现效果: 具体操作: 2.2 给数据添加柱状图图表 实现效果: 具体操作: 2.3 给数据添加迷你图(在表格中的折线图) 实现 ...

  4. R语言箱线图添加显著性--不同水平实现方法

    本节,介绍一下箱线图实现显著性添加的方法,类似这种: 单因素二水平T检验箱线图可视化 单因素三水平T检验箱线图可视化 单因素三水平柱形图 单因素三水平折线图 二因素柱形图 二因素折线图 1. 单因素二 ...

  5. Java通过JfreeChart生成转Base64图片字符串(饼图、折线图、柱状图、折线图-多条、3D柱状图、气泡图、时序图、曲线图、区域图、分布图、联合分类图、双X轴图、K线图、柱状图-横向等图)

    工具类 CreatLineChart.java package DrawLine;import java.awt.BasicStroke; import java.awt.Color; import ...

  6. 迷你图添加趋势线_如何向R表添加迷你图

    迷你图添加趋势线 通常,表中需要的只是文本和数字形式的数据. 但是有时候,您也想在每一行中可视化结果. 当每一行数据都是随着时间变化的趋势时,尤其如此. 您可以在带有迷你内联图(称为迷你图)的新表列中 ...

  7. 如何用pyecharts绘图(堆积折线图,桑基图,玫瑰图,地图,3D弹簧,时间轴轮番图,自定义图)

    版权声明:本文为CSDN博主「千语_肉丸子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/u0125356 ...

  8. StarUML中时序图添加小人

    转载于 http://blog.csdn.net/longyuhome/article/details/9011629 在看时序图的例子的时候,发现有些的时序图上有小人的图标,可是一些UML工具却没有 ...

  9. Python使用matplotlib函数subplot可视化多个不同颜色的折线图、使用set_major_formatter函数自定义设置y轴数值标签格式为百分比

    Python使用matplotlib函数subplot可视化多个不同颜色的折线图.使用set_major_formatter函数自定义设置y轴数值标签格式为百分比 目录

最新文章

  1. iOS自动布局框架-Masonry详解
  2. 斐波那契数列算法分析
  3. nyoj-469--擅长排列的小明 II
  4. java后台日期怎么去重,JAVA后台业务实现去重
  5. Java 设计模式之装饰者模式
  6. 告别加班:一个让你不再重复工作的技能
  7. [读书笔记] 两则之一: 100Gbps传输
  8. Wordpress安装简要说明
  9. 【Yaml】Yaml学习笔记
  10. hibernate异常之--count查询异常
  11. 选择 SAP Spartacus 作为 SAP Commerce Cloud Storefront 实现框架的五个理由
  12. html5小游戏需求分析,2015年HTML5就业需求走势总结分析
  13. 《R语言初学指南》一1.2 向量
  14. 微信小程序社区论坛源码
  15. 微信公众平台二次开发技术文档
  16. 网络工程师--网络安全与应用案例分析
  17. 三年不重装:令电脑百毒不侵的13个妙招
  18. AutoCAD Civil 3D 2015-2020
  19. Egret引擎基础教程II(EUI基础使用教程)
  20. vue3.0教程——搭建Vue脚手架【简化版】

热门文章

  1. Hexo博客Next主题bilibili视频Markdown插入文章
  2. ERP系统和进销存系统的区别
  3. mysql 进制转换函数_SQL Server 进制转换函数
  4. IMX系列设备树引脚复用解析
  5. 理论:详解Linus的目录和文件管理
  6. 10-222 在员工表中查询每年入职的员工人数
  7. 12306自动抢票软件哪个好?记者亲测体验
  8. 移动通信中m序列的Matlab仿真
  9. 【显示技术 - 视频编码】硬件加速 - 对接FFMPEG框架的H.265编码
  10. Abaqus用python进行.odb文件提取