0

JFreechart で描画されたTimeseries -Chartで周期的ではない時間間隔でラベル付けされた x 軸を持つことは可能ですか?

コンパイル可能な最小限の例を作成しました。この例の中には、必要な間隔を指摘するコメントがあります。

私がすでに試したことは、RegularTimePeriodクラスを拡張することです。いくつかのエラーのため、私はこのアプローチをやめ、代わりにもっと簡単な方法があるかどうか尋ねたかった.

最小限の例を次に示します (注: インポートがありません)。

public class MyTimeSeriesGraphMinimalExample {
    public static void main(String args[]) {
        TimeSeries timeseries = new TimeSeries("Series 1");

    //these two should form one interval
    timeseries.add(new Day(1,1,2013),10);//1
    timeseries.add(new Day(5,1,2013),10);//2

    //these two should form one interval
    timeseries.add(new Day(11,1,2013),9);//1
    timeseries.add(new Day(14,1,2013),9);//2
    TimeSeries timeseries1 = new TimeSeries("Series 2");

    //these two should form one interval
    timeseries1.add(new Day(1, 1,2013), 5);//1
    timeseries1.add(new Day(5, 1,2013), 5);//2

    //these two should form one interval
    timeseries1.add(new Day(11, 1,2013), 8);//1
    timeseries1.add(new Day(14, 1,2013), 8);//2

    TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();
    timeseriescollection.addSeries(timeseries);
    timeseriescollection.addSeries(timeseries1);
    XYDataset xydataset = timeseriescollection;

    //chart-visual-property-settings
    JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(
            "Time Series Demo 3", "Time", "Value", xydataset, true, true,
            false);
    XYPlot xyplot = (XYPlot) jfreechart.getPlot();
    DateAxis dateaxis = (DateAxis) xyplot.getDomainAxis();
    dateaxis.setTickUnit(new DateTickUnit(DateTickUnitType.DAY, 1,
            new SimpleDateFormat("dd-MMM")));
    dateaxis.setVerticalTickLabels(true);
    XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer) xyplot
            .getRenderer();
    xylineandshaperenderer.setBaseShapesVisible(true);
    xylineandshaperenderer.setSeriesFillPaint(0, Color.red);
    xylineandshaperenderer.setSeriesFillPaint(1, Color.green);
    xylineandshaperenderer.setSeriesPaint(0, Color.red);
    xylineandshaperenderer.setSeriesPaint(1, Color.green);
    xylineandshaperenderer.setUseFillPaint(true);
    xylineandshaperenderer
            .setLegendItemToolTipGenerator(new StandardXYSeriesLabelGenerator(
                    "Tooltip {0}"));
    //draw
    try {
        ChartUtilities.saveChartAsJPEG(new File("C:/minimalExampleChart.jpeg"),
                jfreechart, 600, 500);
    } catch (Exception e) {
        // TODO: handle exception
    }
        }
}
4

0 に答える 0