Example #1
0
 public MapsStatisticsView(string name)
 {
     panel          = new MapStatistics();
     panel.Name     = name;
     panel.Dock     = DockStyle.Fill;
     this.TitleName = name;
 }
Example #2
0
        public void PlotMouseMove(LineSeries lb, MapStatistics ms, OxyMouseEventArgs e)
        {
            if (lb.Points.Count != 0)
            {
                ms._endPoint1 = lb.InverseTransform(e.Position);
                if (ms._startPoint1.X != 0 || ms._startPoint1.Y != 0)
                {
                    ms._pm.Annotations.Clear();

                    var rectangle = new PolygonAnnotation();
                    rectangle.Layer           = AnnotationLayer.BelowAxes;
                    rectangle.StrokeThickness = 0.5;
                    rectangle.Stroke          = OxyColors.Red;
                    rectangle.Fill            = OxyColors.Transparent;
                    rectangle.LineStyle       = OxyPlot.LineStyle.Dot;

                    rectangle.Points.Add(new DataPoint(ms._startPoint1.X, ms._startPoint1.Y));
                    rectangle.Points.Add(new DataPoint(ms._endPoint1.X, ms._startPoint1.Y));
                    rectangle.Points.Add(new DataPoint(ms._endPoint1.X, ms._endPoint1.Y));
                    rectangle.Points.Add(new DataPoint(ms._startPoint1.X, ms._endPoint1.Y));

                    ms._pm.Annotations.Add(rectangle as Annotation);
                    ms._pm.InvalidatePlot(true);
                }
            }
        }
Example #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="selectlb"></param>
 /// <param name="ms"></param>
 /// <param name="featurelayer"></param>
 public void featurelayer_SelectionChanged(LineSeries selectlb, MapStatistics ms, IFeatureLayer featurelayer)
 {
     if (featurelayer != null)
     {
         List <IFeature> featureList = featurelayer.Selection.ToFeatureList();
         if (featureList.Count != 0)
         {
             foreach (Feature feature in featurelayer.Selection.ToFeatureList())
             {
                 if (ms.value_X != "" || ms.value_Y != "")
                 {
                     double    X         = Convert.ToDouble(feature.DataRow[ms.value_X]);
                     double    Y         = Convert.ToDouble(feature.DataRow[ms.value_Y]);
                     DataPoint datapoint = new DataPoint(X, Y);
                     selectlb.Points.Add(datapoint);
                 }
             }
         }
         else
         {
             selectlb.Points.Clear();
         }
     }
     ms.plotView1.Refresh();
 }
Example #4
0
 public void PlotMouseDown(LineSeries lb, MapStatistics ms, OxyMouseDownEventArgs e)
 {
     if (lb.Points.Count != 0)
     {
         //DataPoint dd = new DataPoint(lb.InverseTransform(e.Position).X, lb.InverseTransform(e.Position).Y);
         ms._startPoint1 = lb.InverseTransform(e.Position);
     }
 }
Example #5
0
        public ScatterPoints(MapStatistics ms, IFeatureLayer featureLayer)
        {
            InitializeComponent();

            _ms           = ms;
            _featurelayer = featureLayer;
            _featurelayer.SelectionChanged += new EventHandler(_featureLayer_SelectionChanged);
            //_ms._pm.PlotType = PlotType.Cartesian;
            _ms._pm.Background     = OxyColors.White;
            _ms._pm.SelectionColor = OxyColors.Red;
            _ms._pm.MouseDown     += PlotMouseDown;
            _ms._pm.MouseMove     += PlotMouseMove;
            _ms._pm.MouseUp       += PlotMouseUp;
            //_ms._pm.MouseLeave += PlotMouseLeave;

            _series1.LineStyle  = OxyPlot.LineStyle.None;
            _series1.MarkerType = MarkerType.Circle;


            _ms._XAxis.Position = AxisPosition.Bottom;

            //_ms._XAxis.TicklineColor = OxyColors.CadetBlue;
            //_ms._XAxis.AxislineThickness = 2;
            //_ms._XAxis.AxislineColor = OxyColors.BlueViolet;

            //_regress.MarkerType = MarkerType.Circle;
            //_regress.MarkerFill = OxyColors.Black;
            _regress.LineStyle = OxyPlot.LineStyle.Solid;
            _regress.Color     = OxyPlot.OxyColors.Black;
            _ms._pm.Series.Add(_regress);

            _ms._pm.Series.Add(_equalSeries);

            _ms._pm.Axes.Add(_ms._XAxis);
            _ms._pm.Axes.Add(_ms._YAxis);

            _series1.Selectable    = true;
            _series1.MarkerFill    = OxyColors.ForestGreen;
            _series1.SelectionMode = OxyPlot.SelectionMode.Multiple;
            _ms._pm.Series.Add(_series1);

            _selectSeries1.LineStyle  = OxyPlot.LineStyle.None;
            _selectSeries1.MarkerType = MarkerType.Circle;
            _selectSeries1.MarkerFill = OxyColors.Red;
            _ms._pm.Series.Add(_selectSeries1);

            _ms.plotView1.Model = _ms._pm;

            cmbType.Items.Add("Circle");
            cmbType.Items.Add("Diamond");
            cmbType.Items.Add("Square");
            cmbType.Items.Add("Triangle");
            cmbType.Items.Add("Star");

            _ms.DataSelection(cmbX, cmbY, _featurelayer);
        }
Example #6
0
 public void PlotMouseUp(LineSeries selectlb, LineSeries lb, MapStatistics ms, IFeatureLayer featurelayer)
 {
     if (ms._startPoint1.X != ms._startPoint1.Y)
     {
         List <int> indexs = SelectByRectangle(selectlb, lb, ms, featurelayer);
         featurelayer.Select(indexs);
         DataPoint zerodata = new DataPoint(0, 0);
         ms._startPoint1 = zerodata;
         ms._pm.Annotations.Clear();
         ms.plotView1.Model.InvalidatePlot(true);
     }
 }
Example #7
0
        public Histogram(MapStatistics ms, IFeatureLayer featurelayer)
        {
            InitializeComponent();
            _ms           = ms;
            _featurelayer = featurelayer;
            _ms._pm.Axes.Clear();
            _cs.FillColor        = OxyColors.BlueViolet;
            _cs.ColumnWidth      = 2;
            _cs.Selectable       = true;
            _cs.IsStacked        = true;
            _select_cs.IsStacked = true;


            _select_cs.FillColor   = OxyColors.Red;
            _select_cs.ColumnWidth = 2;


            //_ms._XAxis.Position = AxisPosition.Bottom;



            _ms._pm.Axes.Add(_ms._CAxis);
            _ms._pm.Axes.Add(_ms._YAxis);


            _ms._pm.Series.Add(_select_cs);
            _ms._pm.Series.Add(_cs);
            _ms.plotView1.Model = _ms._pm;

            _ms._pm.MouseDown += PlotMouseDown;
            _ms._pm.MouseMove += PlotMouseMove;
            _ms._pm.MouseUp   += PlotMouseUp;



            txtEdit.KeyDown += new KeyEventHandler(txtEdit_KeyDown);
            _featurelayer.SelectionChanged += new EventHandler(_featureLayer_SelectionChanged);

            Cbx_threshold.Items.AddRange(new object[] { 0, 50, 100, 150, 200, 250, 300 });
            Cbx_Xname.Items.AddRange(new object[] { "A", "B", "C", "D", "E", "F", "G" });

            foreach (DataColumn col in _featurelayer.DataSet.DataTable.Columns)
            {
                cmbY.Items.Add(col.Caption);
                //if (col.DataType == typeof(double) || col.DataType == typeof(Single) || col.DataType == typeof(float) || col.DataType == typeof(int))
                //{

                //    cmbY.Items.Add(col.Caption);
                //}
            }
        }
Example #8
0
        public LinePlot(MapStatistics ms, IFeatureLayer featurelayer)
        {
            InitializeComponent();
            _ms           = ms;
            _featurelayer = featurelayer;
            _ms._pm.Axes.Clear();
            _featurelayer.SelectionChanged += new EventHandler(_featureLayer_SelectionChanged);
            //_ms._pm.PlotType = PlotType.Cartesian;
            _ms._pm.Background     = OxyColors.White;
            _ms._pm.SelectionColor = OxyColors.Red;
            _ms._pm.MouseDown     += PlotMouseDown;
            _ms._pm.MouseMove     += PlotMouseMove;
            _ms._pm.MouseUp       += PlotMouseUp;

            _ms._XAxis.Position = AxisPosition.Bottom;
            _ms._XAxis.Title    = "X";
            _ms._YAxis.Title    = "Y";

            _ms._pm.Axes.Add(_ms._XAxis);
            _ms._pm.Axes.Add(_ms._YAxis);

            _ls.LineStyle       = OxyPlot.LineStyle.Automatic;
            _ls.Selectable      = true;
            _ls.SelectionMode   = OxyPlot.SelectionMode.Multiple;
            _ls.StrokeThickness = 2;
            _ls.Color           = OxyColors.Automatic;
            _ls.Smooth          = true;

            _selectSeries1.LineStyle = OxyPlot.LineStyle.Solid;
            _selectSeries1.Color     = OxyColors.Red;


            _ms._pm.Series.Add(_ls);
            _ms._pm.Series.Add(_selectSeries1);
            _ms.plotView1.Model = _ms._pm;

            cmbStyle.Items.Add("Dash");
            cmbStyle.Items.Add("DashDashDot");
            cmbStyle.Items.Add("DashDashDotDot");
            cmbStyle.Items.Add("LongDash");
            cmbStyle.Items.Add("Solid");

            cmbAngle.Items.Add("Smooth");
            cmbAngle.Items.Add("Sharp");


            _ms.DataSelection(cmbX, cmbY, _featurelayer);
        }
Example #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="selectlb"></param>
        /// <param name="lb"></param>
        /// <param name="ms"></param>
        /// <param name="featurelayer"></param>
        /// <returns></returns>
        public List <int> SelectByRectangle(LineSeries selectlb, LineSeries lb, MapStatistics ms, IFeatureLayer featurelayer)
        {
            selectlb.Points.Clear();
            featurelayer.ClearSelection();
            List <int> result = new List <int>();
            double     minX, minY, maxX, maxY;

            if (ms._startPoint1.X < ms._endPoint1.X)
            {
                minX = ms._startPoint1.X;
                maxX = ms._endPoint1.X;
            }
            else
            {
                minX = ms._endPoint1.X;
                maxX = ms._startPoint1.X;
            }

            if (ms._startPoint1.Y < ms._endPoint1.Y)
            {
                minY = ms._startPoint1.Y;
                maxY = ms._endPoint1.Y;
            }
            else
            {
                minY = ms._endPoint1.Y;
                maxY = ms._startPoint1.Y;
            }

            foreach (DataPoint item in lb.Points)
            {
                if (item.X < minX || item.X > maxX || item.Y < minY || item.Y > maxY)
                {
                    continue;
                }
                else
                {
                    int pointIndex = ms._pointDic1[item.ToString()];
                    result.Add(pointIndex);
                    selectlb.Points.Add(item);
                }
            }

            ms.plotView1.Refresh();
            return(result);
        }
Example #10
0
        public LineBarPlot(MapStatistics ms, IFeatureLayer featurelayer)
        {
            InitializeComponent();
            _ms           = ms;
            _featurelayer = featurelayer;
            _ms._pm.Axes.Clear();
            _ms._pm.Background              = OxyColors.White;
            _ms._pm.SelectionColor          = OxyColors.Red;
            _ms._pm.MouseDown              += PlotMouseDown;
            _ms._pm.MouseMove              += PlotMouseMove;
            _ms._pm.MouseUp                += PlotMouseUp;
            _featurelayer.SelectionChanged += new EventHandler(_featurelayer_SelectionChanged);

            _lb.FillColor         = OxyColors.HotPink;
            _lb.NegativeFillColor = OxyColors.LightSkyBlue;
            _lb.StrokeThickness   = 1;
            _lb.StrokeColor       = OxyColors.Ivory;
            _lb.Selectable        = true;
            _lb.SelectionMode     = OxyPlot.SelectionMode.Multiple;

            _ms._XAxis.Position = AxisPosition.Bottom;
            _ms._XAxis.Title    = "X";
            _ms._YAxis.Title    = "Y";


            _ms._pm.Axes.Add(_ms._XAxis);
            _ms._pm.Axes.Add(_ms._YAxis);
            //_lb.BarWidth = 20;

            //_selectSeries1.LineStyle = OxyPlot.LineStyle.None;
            //_selectSeries1.MarkerType = MarkerType.Square;
            //_selectSeries1.MarkerSize = 6;
            //_selectSeries1.MarkerFill = OxyColors.Red;
            _selectlb.FillColor         = OxyColors.Red;
            _selectlb.NegativeFillColor = OxyColors.Red;
            _selectlb.StrokeThickness   = 1;
            _selectlb.Selectable        = true;
            _selectlb.SelectionMode     = OxyPlot.SelectionMode.Multiple;

            //_selectlb.BarWidth = 20;
            _ms._pm.Series.Add(_selectlb);
            _ms._pm.Series.Add(_lb);
            _ms.plotView1.Model = _ms._pm;

            _ms.DataSelection(cmbX, cmbY, _featurelayer);
        }
Example #11
0
 /// <summary>
 /// 为散点图/折线图添加坐标点,刷新plotview视图,绘制图形
 /// </summary>
 /// <param name="cmbX"></param>
 /// <param name="cmbY"></param>
 /// <param name="ms"></param>
 /// <param name="lb"></param>
 /// <param name="featurelayer"></param>
 public void DrawPlot(ComboBox cmbX, ComboBox cmbY, MapStatistics ms, LineSeries lb, IFeatureLayer featurelayer)
 {
     foreach (Feature feature in featurelayer.DataSet.Features)
     {
         ms.plotView1.Refresh();
         double X = Convert.ToDouble(feature.DataRow[cmbX.Text]);
         double Y = Convert.ToDouble(feature.DataRow[cmbY.Text]);
         ms.value_X = cmbX.Text;
         ms.value_Y = cmbY.Text;
         DataPoint dataPoint = new DataPoint(X, Y);
         lb.Points.Add(dataPoint);
         if (!ms._pointDic1.ContainsKey(dataPoint.ToString()))
         {
             ms._pointDic1.Add(dataPoint.ToString(), feature.Fid);
         }
     }
     ms.plotView1.Refresh();
 }
Example #12
0
        private void cmbPlotType_SelectedIndexChanged(object sender, EventArgs e)
        {
            panel2.Controls.Clear();
            MapStatistics ss = view1.Control as MapStatistics;

            switch (cmbPlotType.SelectedIndex)
            {
            case 0:
            {
                ss._pm.Series.Clear();
                ss._pm.Axes.Clear();
                ss.plotView1.Refresh();
                ss.plotView1.Invalidate();
                ScatterPoints sp = new ScatterPoints(ss, _featureLayer);
                panel2.Controls.Add(sp);
                sp._ms.plotView1.Model.InvalidatePlot(true);
            }
            break;

            case 1:
            {
                ss._pm.Series.Clear();
                ss._pm.Axes.Clear();
                ss.plotView1.Refresh();
                ss.plotView1.Invalidate();
                LinePlot lp = new LinePlot(ss, _featureLayer);
                panel2.Controls.Add(lp);
                lp._ms.plotView1.Model.InvalidatePlot(true);
            }
            break;

            case 2:
            {
                ss._pm.Series.Clear();
                ss._pm.Axes.Clear();
                ss.plotView1.Refresh();
                ss.plotView1.Invalidate();
                LineBarPlot lb = new LineBarPlot(ss, _featureLayer);
                panel2.Controls.Add(lb);
                lb._ms.plotView1.Model.InvalidatePlot(true);
            }
            break;

            case 3:
            {
                ss._pm.Series.Clear();
                ss._pm.Axes.Clear();
                ss.plotView1.Refresh();
                ss.plotView1.Invalidate();
                Histogram Hg = new Histogram(ss, _featureLayer);
                panel2.Controls.Add(Hg);
                Hg._ms.plotView1.Model.InvalidatePlot(true);
            }
            break;

            case 4:
            {
                ss._pm.Series.Clear();
                ss._pm.Axes.Clear();
                ss.plotView1.Refresh();
                ss.plotView1.Invalidate();
                Histogram2 Hg2 = new Histogram2(ss, _featureLayer);
                panel2.Controls.Add(Hg2);
                Hg2._ms.plotView1.Model.InvalidatePlot(true);
            }
            break;
            }
        }