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
  • 相关阅读:
    Objective-C多线程-02
    Objective-C多线程-01
    Objective-C的属性与实例变量
    KVO的内部实现原理
    ASIHTTPRequest 和 AFNetWorking 的比较
    Python类和函数_规划式开发
    禁用密码登录,改用key秘钥对登录
    Python类和函数_时间与纯函数
    Python类和对象_调试与术语
    Python类和对象_修改和复制
  • 原文地址:https://www.cnblogs.com/ingstyle/p/11243304.html
Copyright © 2011-2022 走看看