1

両方のパラメーターを日付として設定できるかどうかを知りたいのですが、この例では、最初のパラメーターを比較可能なものとして、2 番目のパラメーターを double として使用します。しかし、ダブルを日付として表示したい。使用できるクラスはありますか。そうでない場合、両方を日付として表示する他の方法はありますか。たとえば、日付として x 軸と y 軸の両方が必要です。

のためにdata.addValue("8/4/2012" ,7.0)

このようにしたい ("8/4/2012 20:06:02" ,"8/5/2012") --> 下のグラフで可能ですか?

よろしくお願いします。

public class Example1 {

    public static void main(String args[]){

        DefaultKeyedValues data = new DefaultKeyedValues();
        data.addValue("8/4/2012" ,7.0);
        data.addValue("19/04/2012",5.0);

        CategoryDataset dataset = DatasetUtilities.createCategoryDataset("Population", data);
        JFreeChart chart = ChartFactory.createBarChart("Population","Date","Population",dataset,PlotOrientation.VERTICAL,true,true,false);
        ChartFrame frame = new ChartFrame("Test", chart);

        //Switch from a Bar Rendered to a LineAndShapeRenderer so the chart looks like an XYChart
        LineAndShapeRenderer renderer = new LineAndShapeRenderer();
        renderer.setBaseLinesVisible(false); //TUrn of the lines
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        plot.setRenderer(0, renderer);

        NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();        
        numberAxis.setRange(new Range(0,10));   

        frame.pack();
        frame.setVisible(true);
    }  
}
4

1 に答える 1

1

の代わりに、NumberAxisを使用しDateAxisます。DateFormatこれにより、setDateFormatOverride()メソッドでa を使用できるようになります。

更新: に完全な例がありorg.jfree.chart.demo.TimeSeriesChartDemo1ます。あなたが望むかもしれませんcreateLineChart()。ここでは、範囲軸に日付を表​​示させます。

public class Example1 {

    public static void main(String args[]) {
        DefaultKeyedValues data = new DefaultKeyedValues();
        data.addValue("8/4/2012", new Day(8, 4, 2012).getFirstMillisecond());
        data.addValue("19/04/2012", new Day(19, 4, 2012).getFirstMillisecond());
        CategoryDataset dataset = DatasetUtilities
            .createCategoryDataset("Population", data);

        JFreeChart chart = ChartFactory.createLineChart("Population", "Date",
            "Population", dataset, PlotOrientation.VERTICAL, true, true, false);
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
        renderer.setBaseShapesVisible(true);
        renderer.setBaseLinesVisible(false);

        DateAxis range = new DateAxis("Date");
        range.setDateFormatOverride(new SimpleDateFormat("dd/MM/yyyy"));
        plot.setRangeAxis(range);

        ChartFrame frame = new ChartFrame("Test", chart);
        frame.pack();
        frame.setVisible(true);
    }
}
于 2013-08-28T15:37:23.347 に答える