//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 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; */ }
//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(); }