private void AddChart() { ChartStyle.AddChartStyle(tbTitle, tbXLabel, tbYLabel); if (DataCollection.DataList.Count == 0) { return; } DataCollection.AddLines(ChartStyle); Legend.AddLegend(ChartCanvas, DataCollection); }
private void ResizeChart() { chartCanvas.Children.Clear(); textCanvas.Children.RemoveRange(1, textCanvas.Children.Count - 1); cs.AddChartStyle(); if (DataCollection != null) { if (DataCollection.Count > 0) { cs.Set2DMatrixControl(DataCollection); } } }
private async Task ResizeChart() { CommandHelper ch = new CommandHelper(); await ch.RunBackgroundWorkerWithFlagHelperAsync(() => IsDrawing, async() => { this.Dispatcher.Invoke(() => { //Filtering data based on the selection try { chartCanvas.Children.Clear(); textCanvas.Children.RemoveRange(1, textCanvas.Children.Count - 1); cs.AddChartStyle(); if (DataCollection != null) { if (DataCollection.Count > 0) { cs.SetLinesControl(new BindableCollection <LineSeries>(DataCollection)); if (!IsBubbleChart) { lg.AddLegend(chartCanvas, new BindableCollection <LineSeries>(DataCollection)); } else { lg.AddLegend(chartCanvas, Unit); lg.AddColorBar(textCanvas, ColorMap); } } } } catch { } finally { } }); }); }
/// <summary> /// Визивається кожен раз при необхідності перемалювати графік /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void PlotPicBox_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.SmoothingMode = SmoothingMode.AntiAlias; cs.Elevation = trkElevation.Value; cs.Azimuth = trkAzimuth.Value; if (graph) { cf.Peack3D(ds, cs); } else { cf.SinROverR3D(ds, cs); } cs.AddChartStyle(g); dc.AddChart(g, ds, cs);//, cs2d); }
//#region //public async Task BiaxialGraphicsAsync() //{ // DiagramGraphics = new DovDrawings(diagramContext); // DiagramGraphics.DrwColor = "white"; // DiagramGraphics.LineThickness = 2; // diagramChart.ChartArea = new RectangleF(0, 0, DiagramCanvWidth, DiagramCanvHeight); // bool start = true; // float axialMax = 5; // float axialMin = -5; // float bendxMax = 6; // float bendxMin = -6; // float bendyMax = 4; // float bendyMin = -4; // foreach (KeyValuePair<float, List<float[]>> chartPoint in ColumnInter.BiaxialChartTable) // { // List<float[]> data = chartPoint.Value; // List<float> bendingx = data[0].ToList(); // bendingx = bendingx.OrderBy(o => o).ToList(); // List<float> bendingy = data[1].ToList(); // bendingy = bendingy.OrderBy(o => o).ToList(); // List<float> axial = data[2].ToList(); // axial = axial.OrderBy(o => o).ToList(); // if (start) // { // axialMin = axial.First(); // axialMax = axial.Last(); // bendxMin = bendingx.First(); // bendxMax = bendingx.Last(); // bendyMin = bendingy.First(); // bendyMax = bendingy.Last(); // start = false; // } // else // { // if (axialMin > axial.First()) axialMin = axial.First(); // if (axialMax < axial.Last()) axialMax = axial.Last(); // if (bendxMin > bendingx.First()) bendxMin = bendingx.First(); // if (bendxMax < bendingx.Last()) bendxMax = bendingx.Last(); // if (bendyMin > bendingy.First()) bendyMin = bendingy.First(); // if (bendyMax < bendingy.Last()) bendyMax = bendingy.Last(); // } // } // diagramChart.XTick = (bendxMax - bendxMin) / 10; // diagramChart.YTick = (bendyMax - bendyMin) / 10; // diagramChart.ZTick = (axialMax - axialMin) / 10; // float[] scaleLimits = new float[] { bendxMin, bendxMax, bendyMin, bendyMax, axialMin, axialMax }; // diagramChart.Azimuth = -125; // diagramChart.Elevation = 35; // /// // //DiagramGraphics.DrwColor = "black"; // //PointF pt1 = new PointF(0, 0); // //PointF pt2 = new PointF(DiagramCanvWidth, DiagramCanvHeight); // //await DiagramGraphics.DrawRecAsync(pt1, pt2); // /// // SetGraphicLayout(DiagramCanvWidth, DiagramCanvHeight, 0, diagramChart, scaleLimits); // await diagramChart.AddChartStyle(DiagramGraphics); // DiagramGraphics.DrwColor = "red"; // diagramChart.ChartArea = new RectangleF(0, 0, DiagramCanvWidth, DiagramCanvHeight); // SetGraphicLayout(DiagramCanvWidth, DiagramCanvHeight, 0, diagramChart, scaleLimits); // diagramChart.Azimuth = -125; // diagramChart.Elevation = 35; // Matrix3 m = new Matrix3(); // m = Matrix3.AzimuthElevation(diagramChart.Elevation, diagramChart.Azimuth); // int n = 0; // foreach (KeyValuePair<float, List<float[]>> chartPoint in ColumnInter.BiaxialChartTable) // { // List<float[]> data = chartPoint.Value; // List<float> bendingx = data[0].ToList(); // List<float> bendingy = data[1].ToList(); // List<float> axial = data[2].ToList(); // Point3[] pts = new Point3[bendingx.Count]; // for (int i = 0; i < bendingx.Count; i++) // { // pts[i] = new Point3(bendingx[i], bendingy[i], axial[i], 1); // pts[i].Transform(m, diagramChart); // } // for (int j = 0; j < pts.Length - 1; j++) // { // await DiagramGraphics.DrawLineAsync(pts[j].X, pts[j].Y, pts[j + 1].X, pts[j + 1].Y); // } // n++; // } //} //#endregion public void DrawBiaxialGraphics() { BiaxialGraphics = new DovDrawings(biaxialContext); BiaxialGraphics.DrwColor = "white"; BiaxialGraphics.LineThickness = 3f; biaxialChart.ChartArea = new RectangleF(0, 0, BiaxialCanvWidth, BiaxialCanvHeight); bool start = true; float axialMax = 5; float axialMin = -5; float bendxMax = 6; float bendxMin = -6; float bendyMax = 4; float bendyMin = -4; foreach (KeyValuePair <float, List <float[]> > chartPoint in ColumnInter.BiaxialChartTable) { List <float[]> data = chartPoint.Value; List <float> bendingx = data[0].ToList(); bendingx = bendingx.OrderBy(o => o).ToList(); List <float> bendingy = data[1].ToList(); bendingy = bendingy.OrderBy(o => o).ToList(); List <float> axial = data[2].ToList(); axial = axial.OrderBy(o => o).ToList(); if (start) { axialMin = axial.First(); axialMax = axial.Last(); bendxMin = bendingx.First(); bendxMax = bendingx.Last(); bendyMin = bendingy.First(); bendyMax = bendingy.Last(); start = false; } else { if (axialMin > axial.First()) { axialMin = axial.First(); } if (axialMax < axial.Last()) { axialMax = axial.Last(); } if (bendxMin > bendingx.First()) { bendxMin = bendingx.First(); } if (bendxMax < bendingx.Last()) { bendxMax = bendingx.Last(); } if (bendyMin > bendingy.First()) { bendyMin = bendingy.First(); } if (bendyMax < bendingy.Last()) { bendyMax = bendingy.Last(); } } } biaxialChart.XTick = (bendxMax - bendxMin) / 10; biaxialChart.YTick = (bendyMax - bendyMin) / 10; biaxialChart.ZTick = (axialMax - axialMin) / 10; float[] scaleLimits = new float[] { bendxMin, bendxMax, bendyMin, bendyMax, axialMin, axialMax }; biaxialChart.Azimuth = -125; biaxialChart.Elevation = 35; /// SetGraphicLayout(BiaxialCanvWidth, BiaxialCanvHeight, 0, biaxialChart, scaleLimits); biaxialChart.AddChartStyle(BiaxialGraphics); BiaxialGraphics.DrwColor = "red"; BiaxialGraphics.LineThickness = 3f; biaxialChart.ChartArea = new RectangleF(0, 0, BiaxialCanvWidth, BiaxialCanvHeight); SetGraphicLayout(BiaxialCanvWidth, BiaxialCanvHeight, 0, biaxialChart, scaleLimits); biaxialChart.Azimuth = -125; biaxialChart.Elevation = 35; Matrix3 m = new Matrix3(); m = Matrix3.AzimuthElevation(biaxialChart.Elevation, biaxialChart.Azimuth); foreach (KeyValuePair <float, List <float[]> > chartPoint in ColumnInter.BiaxialChartTable) { List <float[]> data = chartPoint.Value; List <float> bendingx = data[0].ToList(); List <float> bendingy = data[1].ToList(); List <float> axial = data[2].ToList(); Point3[] pts = new Point3[bendingx.Count]; for (int i = 0; i < bendingx.Count; i++) { pts[i] = new Point3(bendingx[i], bendingy[i], axial[i], 1); pts[i].Transform(m, biaxialChart); } for (int j = 0; j < pts.Length - 1; j++) { BiaxialGraphics.DrawLine(pts[j].X, pts[j].Y, pts[j + 1].X, pts[j + 1].Y); } } }