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