1

我每 15 分钟有一次数据。我想绘制一个图表来显示从“date1”到“date2”的值。该图应显示每 15 分钟的值。但是 X 轴上的显示应该只显示日期。

4

1 回答 1

16

如何以 15 分钟的间隔创建示例 XYPlot(显示为日期)

1) 创建您的数据。

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

2)添加你的轴。如果您希望 x 轴显示日期,请使用 DateAxis 作为 x 轴。将您的日期数据输入为 long(以毫秒为单位)。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 文档。

于 2009-02-23T07:24:07.577 回答