/** シリーズ(縦)軸を設定するメソッド */ public void setSeriesAxisByDoc(Document doc) throws IllegalAccessException, NoSuchFieldException { CategoryPlot categoryPlot = (CategoryPlot) this.getPlot(); Element root = doc.getDocumentElement(); Element chartInfo = (Element) root.getElementsByTagName("ChartInfo").item(0); // データセットリスト ArrayList<Dataset> dataSetList = this.getDataSetList(); int listSize = dataSetList.size(); // データセットの数だけループ for (int i = 0; i < listSize; i++) { // プロットに2番目以降のデータセットを追加 // (1番目のデータセットは、ChartFactory.create** メソッドでチャートオブジェクト作成時に追加済み) if (i != 0) { DefaultCategoryDataset subDataset = (DefaultCategoryDataset) dataSetList.get(i); categoryPlot.setDataset(i, subDataset); // データセットをシリーズ軸に追加 categoryPlot.mapDatasetToRangeAxis(i, 1); } // シリーズ軸のValueAxisオブジェクトをラベル指定で生成 Element series = (Element) chartInfo.getElementsByTagName("Series").item(i); String seriesLabel = series.getElementsByTagName("Label").item(0).getFirstChild().getNodeValue(); ValueAxis valueAxis = null; if (i == 0) { valueAxis = categoryPlot.getRangeAxis(); } else { valueAxis = new NumberAxis(seriesLabel); } // シリーズ軸のラベルカラー、フォントを設定 String seriesLabelColor = series.getElementsByTagName("LabelColor").item(0).getFirstChild().getNodeValue(); valueAxis.setLabelPaint(this.createColor(seriesLabelColor)); // シリーズラベルカラー valueAxis.setLabelFont(this.getFont(doc)); // フォント valueAxis.setTickLabelFont(this.getFont(doc)); // Tickラベルフォント String isAutoRangeEnable = series.getElementsByTagName("isAutoRangeEnable").item(0).getFirstChild().getNodeValue(); // シリーズレンジ手動設定 if ("0".equals(isAutoRangeEnable)) { String maxRange = series.getElementsByTagName("MaxRange").item(0).getFirstChild().getNodeValue(); String minRange = series.getElementsByTagName("MinRange").item(0).getFirstChild().getNodeValue(); // レンジ最大値 valueAxis.setUpperBound(Double.parseDouble(maxRange)); // レンジ最小値 valueAxis.setLowerBound(Double.parseDouble(minRange)); } // プロットに生成したシリーズ軸を設定 if (i != 0) { categoryPlot.setRangeAxis(i, valueAxis); } // レンダラーを取得 CategoryItemRenderer renderer = null; if (i == 0) { renderer = this.createRenderer("byPlot"); } else { renderer = this.createRenderer("create"); } // ツールチップ作成 setToolTip(doc, renderer); // //ドリルダウン設定 // enableDrillDown(LSRenderer,(DefaultCategoryDataset)helper.codeDatasetList.elementAt(i)); if (i != 0) { categoryPlot.setRenderer(i, renderer); // オリジナルのプロットにレンダラーを追加 categoryPlot.setDatasetRenderingOrder(DatasetRenderingOrder.REVERSE); } } // ループ終了 }
@Override public JFreeChart createChart(int nbr) { DefaultCategoryDataset dataset0 = new DefaultCategoryDataset(); // DefaultCategoryDataset dataset1 = new DefaultCategoryDataset(); bias for (Tuple<String, double[]> tuple : this.mreDblFileList) { for (int h = 0; h < 24; h++) { dataset0.addValue(tuple.getSecond()[h], tuple.getFirst(), Integer.toString(h + 1)); } } this.chart_ = ChartFactory.createLineChart( "", "Hour", "Mean rel error [%]", dataset0, PlotOrientation.VERTICAL, true, // legend? true, // tooltips? false // URLs? ); CategoryPlot plot = this.chart_.getCategoryPlot(); plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT); final LineAndShapeRenderer renderer = new LineAndShapeRenderer(); renderer.setSeriesPaint(0, Color.RED); renderer.setSeriesPaint(1, Color.GREEN); renderer.setSeriesPaint(2, Color.BLUE); renderer.setSeriesToolTipGenerator(0, new StandardCategoryToolTipGenerator()); plot.setRenderer(0, renderer); Color transparent = new Color(0, 0, 255, 0); this.chart_.setBackgroundPaint( transparent); // pink : Color.getHSBColor((float) 0.0, (float) 0.0, (float) 0.93) plot.setBackgroundPaint(Color.getHSBColor((float) 0.0, (float) 0.0, (float) 0.93)); plot.setRangeGridlinePaint(Color.gray); plot.setRangeGridlinesVisible(true); final CategoryAxis axisX = new CategoryAxis("Hour"); axisX.setTickLabelFont(new Font("SansSerif", Font.BOLD, 15)); plot.setDomainAxis(axisX); // final ValueAxis axis2 = new NumberAxis("Mean abs bias [agent/h]"); // plot.setRangeAxis(1, axis2); final ValueAxis axisY = plot.getRangeAxis(0); axisY.setRange(0.0, 100.0); axisY.setTickLabelFont(new Font("SansSerif", Font.BOLD, 21)); final LineAndShapeRenderer renderer2 = new LineAndShapeRenderer(); renderer2.setSeriesToolTipGenerator(0, new StandardCategoryToolTipGenerator()); renderer2.setSeriesToolTipGenerator(1, new StandardCategoryToolTipGenerator()); plot.setRenderer(1, renderer2); plot.setDatasetRenderingOrder(DatasetRenderingOrder.REVERSE); this.chart_.getLegend().setItemFont(new Font("SansSerif", Font.BOLD, 17)); this.chart_.getLegend().setVisible(false); return this.chart_; }
public static JFreeChart createChart() { DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset(); defaultcategorydataset.addValue(1.0D, "S1", "Category 1"); defaultcategorydataset.addValue(4D, "S1", "Category 2"); defaultcategorydataset.addValue(3D, "S1", "Category 3"); defaultcategorydataset.addValue(5D, "S1", "Category 4"); defaultcategorydataset.addValue(5D, "S1", "Category 5"); defaultcategorydataset.addValue(7D, "S1", "Category 6"); defaultcategorydataset.addValue(7D, "S1", "Category 7"); defaultcategorydataset.addValue(8D, "S1", "Category 8"); defaultcategorydataset.addValue(5D, "S2", "Category 1"); defaultcategorydataset.addValue(7D, "S2", "Category 2"); defaultcategorydataset.addValue(6D, "S2", "Category 3"); defaultcategorydataset.addValue(8D, "S2", "Category 4"); defaultcategorydataset.addValue(4D, "S2", "Category 5"); defaultcategorydataset.addValue(4D, "S2", "Category 6"); defaultcategorydataset.addValue(2D, "S2", "Category 7"); defaultcategorydataset.addValue(1.0D, "S2", "Category 8"); StandardCategoryItemLabelGenerator standardcategoryitemlabelgenerator = new StandardCategoryItemLabelGenerator(); BarRenderer barrenderer = new BarRenderer(); barrenderer.setBaseItemLabelGenerator(standardcategoryitemlabelgenerator); barrenderer.setBaseItemLabelsVisible(true); CategoryPlot categoryplot = new CategoryPlot(); categoryplot.setDataset(defaultcategorydataset); categoryplot.setRenderer(barrenderer); categoryplot.setDomainAxis(new CategoryAxis("Category")); categoryplot.setRangeAxis(new NumberAxis("Value")); categoryplot.setOrientation(PlotOrientation.VERTICAL); categoryplot.setRangeGridlinesVisible(true); categoryplot.setDomainGridlinesVisible(true); DefaultCategoryDataset defaultcategorydataset1 = new DefaultCategoryDataset(); defaultcategorydataset1.addValue(9D, "T1", "Category 1"); defaultcategorydataset1.addValue(7D, "T1", "Category 2"); defaultcategorydataset1.addValue(2D, "T1", "Category 3"); defaultcategorydataset1.addValue(6D, "T1", "Category 4"); defaultcategorydataset1.addValue(6D, "T1", "Category 5"); defaultcategorydataset1.addValue(9D, "T1", "Category 6"); defaultcategorydataset1.addValue(5D, "T1", "Category 7"); defaultcategorydataset1.addValue(4D, "T1", "Category 8"); LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer(); categoryplot.setDataset(1, defaultcategorydataset1); categoryplot.setRenderer(1, lineandshaperenderer); NumberAxis numberaxis = new NumberAxis("Axis 2"); categoryplot.setRangeAxis(1, numberaxis); DefaultCategoryDataset defaultcategorydataset2 = new DefaultCategoryDataset(); defaultcategorydataset2.addValue(94D, "R1", "Category 1"); defaultcategorydataset2.addValue(75D, "R1", "Category 2"); defaultcategorydataset2.addValue(22D, "R1", "Category 3"); defaultcategorydataset2.addValue(74D, "R1", "Category 4"); defaultcategorydataset2.addValue(83D, "R1", "Category 5"); defaultcategorydataset2.addValue(9D, "R1", "Category 6"); defaultcategorydataset2.addValue(23D, "R1", "Category 7"); defaultcategorydataset2.addValue(98D, "R1", "Category 8"); categoryplot.setDataset(2, defaultcategorydataset2); LineAndShapeRenderer lineandshaperenderer1 = new LineAndShapeRenderer(); categoryplot.setRenderer(2, lineandshaperenderer1); categoryplot.mapDatasetToRangeAxis(2, 1); categoryplot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD); categoryplot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_45); JFreeChart jfreechart = new JFreeChart(categoryplot); jfreechart.setTitle("Overlaid Bar Chart"); return jfreechart; }