как построить дневной график с помощью Jfreechart - PullRequest
1 голос
/ 08 января 2009

У меня есть данные за каждые 15 минут. Я хочу построить график для отображения значений от «date1» до «date2». Участок должен показывать каждые 15 минут. Но на дисплее по оси X должны отображаться только даты.

1 Ответ

16 голосов
/ 23 февраля 2009

Как создать образец XYPlot с 15-минутными интервалами (отображается как дата)

1) Создайте свои данные.

   XYSeries dataSeries = new XYSeries("SMS Sent");

2) Добавьте свои оси. Если вы хотите, чтобы ось X отображала даты, используйте DateAxis в качестве оси X. Введите ваши данные даты как длинные (в миллисекундах). jfreecharts позаботится о форматировании для вас.

    DateAxis dateAxis = new DateAxis(timeAxisTitle);

    DateTickUnit unit = null;
    unit = new DateTickUnit(DateTickUnit.MINUTE,15);

    DateFormat chartFormatter = new SimpleDateFormat("yyyy/MM/dd HH:mm");
    dateAxis.setDateFormatOverride(chartFormatter);

    dateAxis.setTickUnit(unit);

    NumberAxis valueAxis = new NumberAxis(valueAxisTitle);

3) Используйте объект DateTickUnit для установки размера тика (например, 15 минут). Это будет строить точку каждые 15 минут.

4) Использовать генератор всплывающих подсказок для создания подсказок (необязательно)

    XYSeriesCollection xyDataset = new XYSeriesCollection(dataSeries);

    StandardXYToolTipGenerator ttg = new StandardXYToolTipGenerator(
            "{0}: {2}", chartFormatter, NumberFormat.getInstance());


    StandardXYItemRenderer renderer = new StandardXYItemRenderer(
            StandardXYItemRenderer.SHAPES_AND_LINES, ttg, null);

    renderer.setShapesFilled(true);

    XYPlot plot = new XYPlot(xyDataset, dateAxis, valueAxis, renderer);

    JFreeChart chart = new JFreeChart(chartTitle, JFreeChart.DEFAULT_TITLE_FONT, plot, false);
    chart.setBackgroundPaint(java.awt.Color.WHITE);

5) создать диаграмму, создав новый объект JFreeChart. Затем вы можете сохранить его или отобразить на экране. О том, как это сделать, см. Документацию по Java.

...