如何使用Jfreechart绘制日常图表

use*_*094 1 java jfreechart

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

fut*_*te7 16

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

1)创建数据.

   XYSeries dataSeries = new XYSeries("SMS Sent");
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

3)使用DateTickUnit对象设置刻度尺寸(例如15分钟).这将每15分钟绘制一个点.

4)使用Tooltip生成器生成工具提示(可选)

    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);
Run Code Online (Sandbox Code Playgroud)

5)通过实例化新的JFreeChart对象来创建图表.然后,您可以将其保存或显示在屏幕上.有关如何执行此操作,请参阅Java文档.