JFreeChartの時系列グラフの設定
予測市場の中のグラフの設定についてのメモです。
JFreeChartの時系列グラフをいろいろいじりたいときに。
class configTimeSeriesChart(JFreeChart tsChart)で、以下のコードを追加
XYPlot xyPlot = tsChart.getXYPlot(); // 背景色 xyPlot.setBackgroundPaint(Color.LIGHT_GRAY); // 描画領域の設定 xyPlot.setRangeGridlinePaint(Color.BLUE); xyPlot.setDomainGridlinesVisible(false); // 凡例背景の設定 tsChart.getLegend(); tsChart.getLegend().setBackgroundPaint(ChartColor. VERY_DARK_CYAN); /* 横軸の設定 */ ValueAxis xAxis = xyPlot.getDomainAxis(); xAxis.setAutoRange(true); long maxMargin = (long)xAxis.getUpperBound(); //System.out.println("maxMargin : " + maxMargin); xAxis.setRangeWithMargins(maxMargin-86400000.0, maxMargin); //範囲:一日間? 1/1000秒に注意 //一日間:86400000.0 (1/1000秒) →最後の要素(Date型)から一日前の範囲でグラフを表示 //maxMargin = (long)xAxis.getUpperBound(); //System.out.println("maxMargin : " + maxMargin); /* 縦軸の設定 */ ValueAxis yAxis = xyPlot.getRangeAxis(); yAxis.setAutoRange(true); /* レンダラの設定 */ System.out.println("Change renderer to XYBarRenderer from " + xyPlot.getRenderer().getClass().getName()); //xyPlot.setRenderer(new XYBarRenderer()); xyPlot.setRenderer(new XYLineAndShapeRenderer()); //線の色を変える XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) xyPlot.getRenderer(); Paint gp0 = new GradientPaint(0.0f, 0.0f, Color.orange, 0.0f, 0.0f, new Color(0, 0, 64)); //第3引数で色を指定 その他は変えても意味なし? Paint gp1 = new GradientPaint(0.0f, 0.0f, Color.green, 0.0f, 0.0f, new Color(0, 64, 0)); renderer.setSeriesPaint(0, gp0); renderer.setSeriesPaint(1, gp1);
基本はここのを参考に作成→[ThinkIT] 第6回:JFreeChartでグラフ作成(後編) (1/4)
線の太さを変えたいけど、レンダラのメソッドに線をいじるのがなさそう...英語版のAPI仕様書見るのはしんどい。
翻訳機能、役に立たねぇーー! (どうでも、いいけどプログラマ向けの翻訳サイトとかあったらいいと思う。予約語だけは訳さないような機能とか)
だれか、なんか良い方法あれば教えてください。