//Main code for creating charts public void createChart(WinChartViewer viewer, int chartIndex) { // The x and y coordinates of the grid double[] dataX = { -4, -3, -2, -1, 0, 1, 2, 3, 4 }; double[] dataY = { -4, -3, -2, -1, 0, 1, 2, 3, 4 }; // Use random numbers for the z values on the XY grid RanSeries r = new RanSeries(99); double[] dataZ = r.get2DSeries(dataX.Length, dataY.Length, -0.9, 0.9); // Create a XYChart object of size 420 x 360 pixels XYChart c = new XYChart(420, 360); // Set the plotarea at (30, 25) and of size 300 x 300 pixels. Use semi-transparent grey // (0xdd000000) horizontal and vertical grid lines c.setPlotArea(30, 25, 300, 300, -1, -1, -1, unchecked ((int)0xdd000000), -1); // Set the x-axis and y-axis scale c.xAxis().setLinearScale(-4, 4, 1); c.yAxis().setLinearScale(-4, 4, 1); // Add a contour layer using the given data ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ); // Move the grid lines in front of the contour layer c.getPlotArea().moveGridBefore(layer); // Add a color axis (the legend) in which the top left corner is anchored at (350, 25). // Set the length to 400 300 and the labels on the right side. ColorAxis cAxis = layer.setColorAxis(350, 25, Chart.TopLeft, 300, Chart.Right); if (chartIndex == 1) { // Speicify a color gradient as a list of colors, and use it in the color axis. int[] colorGradient = { 0x0044cc, 0xffffff, 0x00aa00 }; cAxis.setColorGradient(false, colorGradient); } else if (chartIndex == 2) { // Specify the color scale to use in the color axis double[] colorScale = { -1.0, 0x1a9850, -0.75, 0x66bd63, -0.5, 0xa6d96a, -0.25, 0xd9ef8b, 0, 0xfee08b, 0.25, 0xfdae61, 0.5, 0xf46d43,0.75, 0xd73027, 1 }; cAxis.setColorScale(colorScale); } else if (chartIndex == 3) { // Specify the color scale to use in the color axis. Also specify an underflow color // 0x66ccff (blue) for regions that fall below the lower axis limit. double[] colorScale = { 0, 0xffff99, 0.2, 0x80cdc1, 0.4, 0x35978f, 0.6, 0x01665e, 0.8, 0x003c30, 1 }; cAxis.setColorScale(colorScale, 0x66ccff); } // Output the chart viewer.Chart = c; }
private void OpenContourFile(string fname, ICanvas canvas) { IContourLayer lyr = ContourLayer.FromXml(fname, true); if (lyr != null) { canvas.LayerContainer.Layers.Add(lyr); canvas.Refresh(Core.DrawEngine.enumRefreshType.All); } }
private void UpdatePlot(object sender, RunWorkerCompletedEventArgs e) { List <object> objlist = new List <object>(); objlist.AddRange((List <object>)e.Result); double[] depart = (double[])objlist[0]; double[] arrive = (double[])objlist[1]; double[] departVel = (double[])objlist[2]; string Plan1Name = (string)objlist[3]; string Plan2Name = (string)objlist[4]; XYChart c = new XYChart(800, 800); c.setPlotArea(75, 40, 600, 600, -1, -1, -1, c.dashLineColor(unchecked ((int)0x80000000), Chart.DotLine), -1); // When auto-scaling, use tick spacing of 40 pixels as a guideline c.yAxis().setTickDensity(40); c.xAxis().setTickDensity(40); // Add a contour layer using the given data ContourLayer layer = c.addContourLayer(depart, arrive, departVel); c.getPlotArea().moveGridBefore(layer); ColorAxis cAxis = layer.setColorAxis(700, 40, Chart.TopLeft, 400, Chart.Right); double[] colorScale = { 3, 0x090446, 3.3, 0x16366B, 3.6, 0x236890, 3.9, 0x309AB5, 4.2, 0x53C45A, 4.5, 0x77EF00, 4.8, 0xBBF70F, 5.1, 0xFFFF1E, 5.4, 0xFF8111, 5.7, 0xFF0404 }; cAxis.setColorScale(colorScale, 0x090446, 0xffffff); cAxis.setColorGradient(false); // Add a title to the color axis using 12 points Arial Bold Italic font cAxis.setTitle("Departure Velocity (km/s)", "Arial Bold Italic", 12); c.xAxis().setTitle("Departure Date (JDCT)"); c.yAxis().setTitle("Arrival Date (JDCT)"); c.addTitle("Departure Velocity from " + Plan1Name + " to " + Plan2Name); c.xAxis().setTickLength(10); c.yAxis().setTickLength(10); // Output the chart winChartViewer1.Chart = c; winChartViewer1.ImageMap = c.getHTMLImageMap(""); /* * // The data for the bar chart * double[] data = {85, 156, 179.5, 211, 123}; * * // The labels for the bar chart * string[] labels = { "Mon", "Tue", "Wed", "Thu", "Fri" }; * * XYChart c = new XYChart(250, 250); * c.setPlotArea(30, 20, 200, 200); * c.addBarLayer(data); * c.xAxis().setLabels(labels); * winChartViewer1.Chart = c; */ }
private void button35_Click(object sender, EventArgs e) { using (OpenFileDialog dlg = new OpenFileDialog()) { dlg.Filter = "等值线(*.xml)|*.xml"; if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { IContourLayer lyr = ContourLayer.FromXml(dlg.FileName, true); if (lyr != null) { _canvas.LayerContainer.Layers.Add(lyr); _canvas.Refresh(enumRefreshType.All); } // //Object2Xml obj2xml = new Object2Xml(); //obj2xml.ToXmlFile(lyr, "f:\\xxx.xml"); } } }
private void TryDisplay(ContourLine[] cntLines, frmContourSettings.ContourItem[] items, bool isLabel, bool isFillColor, bool isNew, IRasterDataProvider dataProvider) { if (cntLines == null || cntLines.Length == 0) { return; } var v = cntLines.Where((cntLine) => { return(cntLine != null); }); if (v == null || v.Count() == 0) { return; } ContourClass[] dstItems = ToContourClass(items); foreach (ContourLine cntLine in v) { for (int i = 0; i < dstItems.Length; i++) { if (Math.Abs(dstItems[i].ContourValue - cntLine.ContourValue) < double.Epsilon) { cntLine.ClassIndex = i; break; } } } if (isNew) { string fname = dataProvider.fileName; dataProvider.Dispose(); OpenFileFactory.Open(fname); } ICanvasViewer cv = _smartSession.SmartWindowManager.ActiveCanvasViewer; if (cv == null) { return; } IContourLayer lyr = new ContourLayer("等值线"); lyr.Apply(v.ToArray(), dstItems, isLabel, isFillColor); cv.Canvas.LayerContainer.Layers.Add(lyr as GeoDo.RSS.Core.DrawEngine.ILayer); cv.Canvas.Refresh(Core.DrawEngine.enumRefreshType.All); }
private void button26_Click(object sender, EventArgs e) { using (OpenFileDialog dlg = new OpenFileDialog()) { dlg.Filter = "等值线(*.xml)|*.xml"; if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { IContourLayer lyr = ContourLayer.FromXml(dlg.FileName, true); if (lyr != null) { IDataFrame df = _host.ActiveDataFrame; if (df == null) { return; } ICanvas canvas = (df.Provider as IDataFrameDataProvider).Canvas; canvas.LayerContainer.Layers.Add(lyr); canvas.Refresh(enumRefreshType.All); } } } }
private void TryDisplay(ContourLine[] cntLines, frmPointContour.ContourItem[] items, bool isLabel) { if (cntLines == null || cntLines.Length == 0) { return; } var v = cntLines.Where((cntLine) => { return(cntLine != null); }); if (v == null || v.Count() == 0) { return; } ContourClass[] dstItems = ToContourClass(items); foreach (ContourLine cntLine in v) { for (int i = 0; i < dstItems.Length; i++) { if (Math.Abs(dstItems[i].ContourValue - cntLine.ContourValue) < double.Epsilon) { cntLine.ClassIndex = i; break; } } } ICanvasViewer cv = _smartSession.SmartWindowManager.ActiveCanvasViewer; if (cv == null) { return; } IContourLayer lyr = new ContourLayer("等值线"); lyr.Apply(v.ToArray(), dstItems, isLabel, false); cv.Canvas.LayerContainer.Layers.Add(lyr as GeoDo.RSS.Core.DrawEngine.ILayer); cv.Canvas.Refresh(Core.DrawEngine.enumRefreshType.All); }
//Main code for creating chart. //Note: the argument img is unused because this demo only has 1 chart. public void createChart(WinChartViewer viewer, string img) { // The x and y coordinates of the grid double[] dataX = { -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; double[] dataY = { -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // The values at the grid points. In this example, we will compute the // values using the formula z = x * sin(y) + y * sin(x). double[] dataZ = new double[(dataX.Length) * (dataY.Length)]; for (int yIndex = 0; yIndex < dataY.Length; ++yIndex) { double y = dataY[yIndex]; for (int xIndex = 0; xIndex < dataX.Length; ++xIndex) { double x = dataX[xIndex]; dataZ[yIndex * (dataX.Length) + xIndex] = x * Math.Sin(y) + y * Math.Sin(x); } } // Create a XYChart object of size 600 x 500 pixels XYChart c = new XYChart(600, 500); // Add a title to the chart using 15 points Arial Bold Italic font c.addTitle("z = x * sin(y) + y * sin(x) ", "Arial Bold Italic", 15); // Set the plotarea at (75, 40) and of size 400 x 400 pixels. Use // semi-transparent black (80000000) dotted lines for both horizontal and // vertical grid lines c.setPlotArea(75, 40, 400, 400, -1, -1, -1, c.dashLineColor( unchecked ((int)0x80000000), Chart.DotLine), -1); // Set x-axis and y-axis title using 12 points Arial Bold Italic font c.xAxis().setTitle("X-Axis Title Place Holder", "Arial Bold Italic", 12); c.yAxis().setTitle("Y-Axis Title Place Holder", "Arial Bold Italic", 12); // Set x-axis and y-axis labels to use Arial Bold font c.xAxis().setLabelStyle("Arial Bold"); c.yAxis().setLabelStyle("Arial Bold"); // When auto-scaling, use tick spacing of 40 pixels as a guideline c.yAxis().setTickDensity(40); c.xAxis().setTickDensity(40); // Add a contour layer using the given data ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ); // Move the grid lines in front of the contour layer c.getPlotArea().moveGridBefore(layer); // Add a color axis (the legend) in which the top left corner is anchored // at (505, 40). Set the length to 400 pixels and the labels on the right // side. ColorAxis cAxis = layer.setColorAxis(505, 40, Chart.TopLeft, 400, Chart.Right); // Add a title to the color axis using 12 points Arial Bold Italic font cAxis.setTitle("Color Legend Title Place Holder", "Arial Bold Italic", 12 ); // Set color axis labels to use Arial Bold font cAxis.setLabelStyle("Arial Bold"); // Output the chart viewer.Image = c.makeImage(); }
//Main code for creating charts public void createChart(WinChartViewer viewer, int chartIndex) { // The x and y coordinates of the grid double[] dataX = { -4, -3, -2, -1, 0, 1, 2, 3, 4 }; double[] dataY = { -4, -3, -2, -1, 0, 1, 2, 3, 4 }; // The values at the grid points. In this example, we will compute the values using the // formula z = Sin(x * pi / 3) * Sin(y * pi / 3). double[] dataZ = new double[dataX.Length * dataY.Length]; for (int yIndex = 0; yIndex < dataY.Length; ++yIndex) { double y = dataY[yIndex]; for (int xIndex = 0; xIndex < dataX.Length; ++xIndex) { double x = dataX[xIndex]; dataZ[yIndex * dataX.Length + xIndex] = Math.Sin(x * 3.1416 / 3) * Math.Sin(y * 3.1416 / 3); } } // Create a XYChart object of size 360 x 360 pixels XYChart c = new XYChart(360, 360); // Set the plotarea at (30, 25) and of size 300 x 300 pixels. Use semi-transparent black // (c0000000) for both horizontal and vertical grid lines c.setPlotArea(30, 25, 300, 300, -1, -1, -1, unchecked ((int)0xc0000000), -1); // Add a contour layer using the given data ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ); // Set the x-axis and y-axis scale c.xAxis().setLinearScale(-4, 4, 1); c.yAxis().setLinearScale(-4, 4, 1); if (chartIndex == 0) { // Discrete coloring, spline surface interpolation c.addTitle("Spline Surface - Discrete Coloring", "Arial Bold Italic", 12); } else if (chartIndex == 1) { // Discrete coloring, linear surface interpolation c.addTitle("Linear Surface - Discrete Coloring", "Arial Bold Italic", 12); layer.setSmoothInterpolation(false); } else if (chartIndex == 2) { // Smooth coloring, spline surface interpolation c.addTitle("Spline Surface - Continuous Coloring", "Arial Bold Italic", 12); layer.setContourColor(Chart.Transparent); layer.colorAxis().setColorGradient(true); } else { // Discrete coloring, linear surface interpolation c.addTitle("Linear Surface - Continuous Coloring", "Arial Bold Italic", 12); layer.setSmoothInterpolation(false); layer.setContourColor(Chart.Transparent); layer.colorAxis().setColorGradient(true); } // Output the chart viewer.Chart = c; }
// // Create chart // private void createChart(RazorChartViewer viewer) { // The (x, y, z) coordinates of the scattered data double[] dataX = { 0.5, 1.9, 4.9, 1.0, 8.9, 9.8, 5.9, 2.9, 6.8, 9.0, 0.0, 8.9, 1.9, 4.8, 2.4, 3.4, 7.9, 7.5, 4.8, 7.5, 9.5, 0.4, 8.9, 0.9, 5.4, 9.4, 2.9, 8.9, 0.9, 8.9, 10.0, 1.0, 6.8, 3.8, 9.0, 5.3, 6.4, 4.9, 4.5, 2.0, 5.4, 0.0, 10.0, 3.9, 5.4, 5.9, 5.8, 0.3, 4.4, 8.3 }; double[] dataY = { 3.3, 3.0, 0.7, 1.0, 9.3, 4.5, 8.4, 0.1, 0.8, 0.1, 9.3, 1.8, 4.3, 1.3, 2.3, 5.4, 6.9, 9.0, 9.8, 7.5, 1.8, 1.4, 4.5, 7.8, 3.8, 4.0, 2.9, 2.4, 3.9, 2.9, 2.3, 9.3, 2.0, 3.4, 4.8, 2.3, 3.4, 2.3, 1.5, 7.8, 4.5, 0.9, 6.3, 2.4, 6.9, 2.8, 1.3, 2.9, 6.4, 6.3 }; double[] dataZ = { 6.6, 12.5, 7.4, 6.2, 9.6, 13.6, 19.9, 2.2, 6.9, 3.4, 8.7, 8.4, 7.8, 8.0, 9.4, 11.9, 9.6, 15.7, 12.0, 13.3, 9.6, 6.4, 9.0, 6.9, 4.6, 9.7, 10.6, 9.2, 7.0, 6.9, 9.7, 8.6, 8.0, 13.6, 13.2, 5.9, 9.0, 3.2, 8.3, 9.7, 8.2, 6.1, 8.7, 5.6, 14.9, 9.8, 9.3, 5.1, 10.8, 9.8 }; // Create a XYChart object of size 450 x 540 pixels XYChart c = new XYChart(450, 540); // Add a title to the chart using 15 points Arial Italic font c.addTitle(" Contour Chart with Scattered Data", "Arial Italic", 15); // Set the plotarea at (65, 40) and of size 360 x 360 pixels. Use semi-transparent black // (c0000000) for both horizontal and vertical grid lines c.setPlotArea(65, 40, 360, 360, -1, -1, -1, unchecked ((int)0xc0000000), -1); // Set x-axis and y-axis title using 12 points Arial Bold Italic font c.xAxis().setTitle("X-Axis Title Place Holder", "Arial Bold Italic", 10); c.yAxis().setTitle("Y-Axis Title Place Holder", "Arial Bold Italic", 10); // Set x-axis and y-axis labels to use Arial Bold font c.xAxis().setLabelStyle("Arial Bold"); c.yAxis().setLabelStyle("Arial Bold"); // When x-axis and y-axis color to transparent c.xAxis().setColors(Chart.Transparent); c.yAxis().setColors(Chart.Transparent); // Add a scatter layer to the chart to show the position of the data points c.addScatterLayer(dataX, dataY, "", Chart.Cross2Shape(0.2), 7, 0x000000); // Add a contour layer using the given data ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ); // Move the grid lines in front of the contour layer c.getPlotArea().moveGridBefore(layer); // Add a color axis (the legend) in which the top center is anchored at (245, 455). Set the // length to 330 pixels and the labels on the top side. ColorAxis cAxis = layer.setColorAxis(245, 455, Chart.TopCenter, 330, Chart.Top); // Add a bounding box to the color axis using the default line color as border. cAxis.setBoundingBox(Chart.Transparent, Chart.LineColor); // Add a title to the color axis using 12 points Arial Bold Italic font cAxis.setTitle("Color Legend Title Place Holder", "Arial Bold Italic", 10); // Set color axis labels to use Arial Bold font cAxis.setLabelStyle("Arial Bold"); // Set the color axis range as 0 to 20, with a step every 2 units cAxis.setLinearScale(0, 20, 2); // Output the chart viewer.Image = c.makeWebImage(Chart.PNG); }
//Main code for creating chart. //Note: the argument img is unused because this demo only has 1 chart. public void createChart(WinChartViewer viewer, string img) { // The x and y coordinates of the grid double[] dataX = { -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; double[] dataY = { -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // The values at the grid points. In this example, we will compute the // values using the formula z = Sin(x / 2) * Sin(y / 2). double[] dataZ = new double[(dataX.Length) * (dataY.Length)]; for (int yIndex = 0; yIndex < dataY.Length; ++yIndex) { double y = dataY[yIndex]; for (int xIndex = 0; xIndex < dataX.Length; ++xIndex) { double x = dataX[xIndex]; dataZ[yIndex * (dataX.Length) + xIndex] = Math.Sin(x / 2.0) * Math.Sin(y / 2.0); } } // Create a XYChart object of size 600 x 500 pixels XYChart c = new XYChart(600, 500); // Add a title to the chart using 18 points Times New Roman Bold Italic // font c.addTitle("Nano Lattice Twister Field Intensity ", "Times New Roman Bold Italic", 18); // Set the plotarea at (75, 40) and of size 400 x 400 pixels. Use // semi-transparent black (80000000) dotted lines for both horizontal and // vertical grid lines c.setPlotArea(75, 40, 400, 400, -1, -1, -1, c.dashLineColor( unchecked ((int)0x80000000), Chart.DotLine), -1); // Set x-axis and y-axis title using 12 points Arial Bold Italic font c.xAxis().setTitle("Lattice X Direction (nm)", "Arial Bold Italic", 12); c.yAxis().setTitle("Lattice Y Direction (nm)", "Arial Bold Italic", 12); // Set x-axis and y-axis labels to use Arial Bold font c.xAxis().setLabelStyle("Arial Bold"); c.yAxis().setLabelStyle("Arial Bold"); // When auto-scaling, use tick spacing of 40 pixels as a guideline c.yAxis().setTickDensity(40); c.xAxis().setTickDensity(40); // Add a contour layer using the given data ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ); // Set the contour color to transparent layer.setContourColor(Chart.Transparent); // Move the grid lines in front of the contour layer c.getPlotArea().moveGridBefore(layer); // Add a color axis (the legend) in which the left center point is // anchored at (495, 240). Set the length to 370 pixels and the labels on // the right side. ColorAxis cAxis = layer.setColorAxis(495, 240, Chart.Left, 370, Chart.Right); // Add a bounding box to the color axis using light grey (eeeeee) as the // background and dark grey (444444) as the border. cAxis.setBoundingBox(0xeeeeee, 0x444444); // Add a title to the color axis using 12 points Arial Bold Italic font cAxis.setTitle("Twist Pressure (Twist-Volt)", "Arial Bold Italic", 12); // Set color axis labels to use Arial Bold font cAxis.setLabelStyle("Arial Bold"); // Use smooth gradient coloring cAxis.setColorGradient(true); // Output the chart viewer.Image = c.makeImage(); }
//Main code for creating chart. //Note: the argument chartIndex is unused because this demo only has 1 chart. public void createChart(WPFChartViewer viewer, int chartIndex) { // The x and y coordinates of the grid double[] dataX = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; double[] dataY = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // Use random numbers for the z values on the XY grid RanSeries r = new RanSeries(999); double[] dataZ = r.get2DSeries(dataX.Length, dataY.Length, -0.9, 1.15); // Create a XYChart object of size 640 x 460 pixels XYChart c = new XYChart(640, 460); // Set default text color to dark grey (0x333333) c.setColor(Chart.TextColor, 0x333333); // Set the plotarea at (30, 25) and of size 400 x 400 pixels. Use semi-transparent grey // (0xdd000000) horizontal and vertical grid lines c.setPlotArea(50, 25, 400, 400, -1, -1, Chart.Transparent, unchecked ((int)0xdd000000), -1); // Set the x and y axis stems to transparent and the label font to 12pt Arial c.xAxis().setColors(Chart.Transparent); c.yAxis().setColors(Chart.Transparent); c.xAxis().setLabelStyle("Arial", 12); c.yAxis().setLabelStyle("Arial", 12); // Set the x-axis and y-axis scale c.xAxis().setLinearScale(0, 10, 1); c.yAxis().setLinearScale(0, 10, 1); // Add a contour layer using the given data ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ); // Move the grid lines in front of the contour layer c.getPlotArea().moveGridBefore(layer); // Define the color scale double[] colorScale = { -0.8, 0x0066ff, -0.5, 0x66ccff, -0.3, 0x66ffff, 0, 0x88ff88, 0.4, 0x00ff00, 0.7, 0xffff00, 0.9, 0xff6600, 1.0, 0xcc0000, 1.1 }; // Apply the color scale, and specify the underflow and overflow colors for regions // exceeding the color scale layer.colorAxis().setColorScale(colorScale, 0x0000cc, 0x000000); // // Instead of displaying the color axis, we use a legend box to display the colors. This // is useful for colors that are unevenly spaced on the color axis. // // Add a legend box at (460, 25) with vertical layout, with 12pt Arial font, transparent // background and border, icon size of 15 x 15 pixels, and line spacing of 8 pixels. LegendBox b = c.addLegend(460, 25, true, "Arial", 12); b.setBackground(Chart.Transparent, Chart.Transparent); b.setKeySize(15, 15); b.setKeySpacing(0, 8); // Add the legend box entries b.addKey("> 1.1 (Critical)", 0x000000); b.addKey("1.0 to 1.1 (Alert)", 0xcc0000); b.addKey("0.9 to 1.0", 0xff6600); b.addKey("0.7 to 0.9", 0xffff00); b.addKey("0.4 to 0.7", 0x00ff00); b.addKey("0.0 to 0.4", 0x88ff88); b.addKey("-0.3 to 0.0", 0x66ffff); b.addKey("-0.5 to -0.3", 0x66ccff); b.addKey("-0.8 to -0.5", 0x0066ff); b.addKey("< -0.8", 0x0000cc); // Output the chart viewer.Chart = c; }
public override void ChangeState(params object[] arguments) { Init(); ChangeData((List <double[]>)arguments[0]); layer = chart.addContourLayer(dataX, dataY, dataZ); }