private MultiBarChartData createMultiBarChart(String title, DataTable chartTable) { String[] labels = new String[chartTable.Rows.Count]; BarLayer[] barLayers = new BarLayer[chartTable.Columns.Count - 1]; DataRow row = null; double[] data = null; for (int j = 0; j < chartTable.Columns.Count; j++) { data = new double[labels.Length]; for (int i = 0; i < chartTable.Rows.Count; i++) { row = chartTable.Rows[i]; if (j == 0) { labels[i] = row[j].ToString(); } else { data[i] = Double.Parse(row[j].ToString()); } } if (j != 0) { barLayers[j - 1] = new BarLayer(data, chartTable.Columns[j].ColumnName); } } return new MultiBarChartData(title, barLayers, labels); }
public MultiBarChartData(String title, BarLayer[] barLayers, String[] xLabels) { this.title = title; this.barLayers = barLayers; this.xLabels = xLabels; }
private void buildMultiBarChart(int runId, MeasureInfo measure) { DataTable chartTable = this.getMeasuredGraphDataTable(runId, measure); if (chartTable == null) { String message = "There is no data for the measure: " + measure.DisplayName; logger.Debug(message + " for Run " + runId); MessageBox.Show(message, "Graphing Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } String[] labels = new String[chartTable.Rows.Count]; BarLayer[] barLayers = new BarLayer[chartTable.Columns.Count - 1]; DataRow row = null; double[] data = null; for (int j = 0; j < chartTable.Columns.Count; j++) { data = new double[labels.Length]; for (int i = 0; i < chartTable.Rows.Count; i++) { row = chartTable.Rows[i]; if (j == 0) { labels[i] = row[j].ToString(); } else { data[i] = Double.Parse(row[j].ToString()); } } if (j != 0) { barLayers[j - 1] = new BarLayer(data, chartTable.Columns[j].ColumnName); } } this.chartData = new MultiBarChartData(measure.DisplayName, barLayers, labels); }