public MapsStatisticsView(string name) { panel = new MapStatistics(); panel.Name = name; panel.Dock = DockStyle.Fill; this.TitleName = name; }
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); } } }
/// <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(); }
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); } }
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); }
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); } }
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); //} } }
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); }
/// <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); }
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); }
/// <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(); }
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; } }