zoukankan      html  css  js  c++  java
  • WPF——OXY绘图_old

     plotModel = new PlotModel()
                {
                    Title = "数据统计",
                    LegendTitle = "Max:红色,Min:黄色",
                    LegendOrientation = LegendOrientation.Horizontal,
                    LegendPlacement = LegendPlacement.Inside,
                    LegendPosition = LegendPosition.TopRight,
                    LegendBackground = OxyColor.FromAColor(200, OxyColors.Beige),
                    LegendBorder = OxyColors.Black,
                    DefaultFont = "微软雅黑",
                };
    
                #region X,Y轴
    
    
                //X轴
                var _dateAxis = new DateTimeAxis()
                {
                    MajorGridlineStyle = LineStyle.Solid,
                    MinorGridlineStyle = LineStyle.Dot,
                    IntervalLength = 80,
                    IsZoomEnabled = false,
                    IsPanEnabled = false,
                    StringFormat = "M/d HH:mm:ss",
                    Title = "时间"
                };
                plotModel.Axes.Add(_dateAxis);
    
                //Y轴
                var _valueAxis = new LinearAxis()
                {
                    Title = "数值",
                    Maximum = usl + usl / 4,
                    Minimum = lsl - lsl / 3,
                    MajorGridlineStyle = LineStyle.Solid,//主刻度设置格网
                    MinorGridlineStyle = LineStyle.Dot,//子刻度设置格网样式
                    IntervalLength = 80,
                    Angle = 60,
                    IsZoomEnabled = true,//坐标轴缩放
                    IsPanEnabled = true,//图表缩放功能 
                    Position = AxisPosition.Left,
                };
                plotModel.Axes.Add(_valueAxis);
    
                #endregion
    
                #region 线条
    
                //动态线条
                var lineSerial = new LineSeries()
                {
                    Title = SvidSelected.ParaName,//eqpParam name
                    Color = OxyColors.Black,
                    Smooth = true,
                    MarkerType = MarkerType.Circle,
                    StrokeThickness = 0,
                    MarkerSize = 1,
                    MarkerStroke = OxyColors.BlueViolet,
                };
                plotModel.Series.Add(lineSerial);
    
                Task.Factory.StartNew(() =>
                   {
                       for (int i = 0; i < resData.Count; i++)
                       {
                           lineSerial.Points.Add(DateTimeAxis.CreateDataPoint(resData[i].occurenceTime, resData[i].val));
                           plotModel.InvalidatePlot(true); //每秒刷新一次视图 
                           //Thread.Sleep(200);
                       }
                       sw.Stop();
                       TotalDate = "总渲染时间(毫秒):" + sw.ElapsedMilliseconds;//sw.ElapsedTicks / (decimal)Stopwatch.Frequency;
                   });
    
                #endregion
    
                #region 上限,下限,中线
    
                //添加标注线
                var lineMaxAnnotation = new LineAnnotation()
                {//上限
                    Type = LineAnnotationType.Horizontal,
                    Y = usl,
                    Text = "上限:" + usl,
                    Color = OxyColors.Red,
                    LineStyle = LineStyle.DashDashDot,
                    StrokeThickness = 2
                };
                plotModel.Annotations.Add(lineMaxAnnotation);
    
                var lineMinAnnotation = new LineAnnotation()
                {//下限
                    Type = LineAnnotationType.Horizontal,
                    Color = OxyColors.Blue,
                    LineStyle = LineStyle.Dash,
                    StrokeThickness = 2,
                    Y = lsl,
                    Text = "下限:" + lsl
                };
                plotModel.Annotations.Add(lineMinAnnotation);
    
                var lineMean = new LineAnnotation()
                {//平均
                    Type = LineAnnotationType.Horizontal,
                    Color = OxyColors.Green,
                    LineStyle = LineStyle.LongDash,
                    StrokeThickness = 2,
                    Y = mean,
                    Text = "平均:" + mean
                };
                plotModel.Annotations.Add(lineMean);
    
                #endregion
    
                #region 最大值,最小值
    
                var min = new ScatterSeries();
                var maxDataPoint = DateTimeAxis.CreateDataPoint(maxPoint.occurenceTime, maxPoint.val);
                min.Points.Add(new ScatterPoint(maxDataPoint.X, maxDataPoint.Y, 15));
                min.MarkerFill = OxyColor.FromAColor(20, OxyColors.Red);
                min.MarkerType = MarkerType.Circle;
                plotModel.Series.Add(min);
    
                var max = new ScatterSeries();
                var minDataPoint = DateTimeAxis.CreateDataPoint(minPoint.occurenceTime, minPoint.val);
                max.Points.Add(new ScatterPoint(minDataPoint.X, minDataPoint.Y, 15));
                max.MarkerFill = OxyColor.FromAColor(20, OxyColors.Yellow);
                max.MarkerType = MarkerType.Circle;
                plotModel.Series.Add(max);
    
                #endregion
  • 相关阅读:
    iOS 苹果开发证书失效的解决方案(Failed to locate or generate matching signing assets)
    iOS NSArray数组过滤
    App Store2016年最新审核规则
    iOS 根据字符串数目,自定义Label等控件的高度
    iOS 证书Bug The identity used to sign the executable is no longer valid 解决方案
    Entity FrameWork 增删查改的本质
    EF容器---代理类对象
    Entity FrameWork 延迟加载本质(二)
    Entity FrameWork 延迟加载的本质(一)
    Entity FrameWork 增删查改
  • 原文地址:https://www.cnblogs.com/ingstyle/p/11243304.html
Copyright © 2011-2022 走看看