个性化阅读
专注于IT技术分析

JFreeChart折线图

本文概述

折线图是由直线段连接的一系列点。通过这些连接的线显示信息。折线图表示数据如何以相同的时间频率变化。

下图显示了JFreeChart库中包含的折线图的一些演示版本:

折线图演示1:

JFreeChart折线图演示1

折线图演示2:

JFreeChart折线图演示2

折线图演示3:

JFreeChart折线图演示3

折线图演示4:

JFreeChart折线图演示4

折线图示例

让我们考虑一个示例数据, 该数据显示了我们网站www.srcmini02.com上的频繁访问。

日期 每日访客总数
2016-12-19 200
2016-12-20 150
2016-12-21 100
2016-12-22 210
2016-12-23 240
2016-12-24 195
2016-12-25 245
日期 唯一身份访问者总数
2016-12-19 150
2016-12-20 130
2016-12-21 95
2016-12-22 195
2016-12-23 200
2016-12-24 180
2016-12-25 230

以下代码根据上述示例数据创建折线图:

LineChartExample.java

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;

public class LineChartExample extends JFrame {

  private static final long serialVersionUID = 1L;

  public LineChartExample(String title) {
    super(title);
    // Create dataset
    DefaultCategoryDataset dataset = createDataset();
    // Create chart
    JFreeChart chart = ChartFactory.createLineChart(
        "Site Traffic", // Chart title
        "Date", // X-Axis Label
        "Number of Visitor", // Y-Axis Label
        dataset
        );

    ChartPanel panel = new ChartPanel(chart);
    setContentPane(panel);
  }

  private DefaultCategoryDataset createDataset() {

    String series1 = "Visitor";
    String series2 = "Unique Visitor";

    DefaultCategoryDataset dataset = new DefaultCategoryDataset();

    dataset.addValue(200, series1, "2016-12-19");
    dataset.addValue(150, series1, "2016-12-20");
    dataset.addValue(100, series1, "2016-12-21");
    dataset.addValue(210, series1, "2016-12-22");
    dataset.addValue(240, series1, "2016-12-23");
    dataset.addValue(195, series1, "2016-12-24");
    dataset.addValue(245, series1, "2016-12-25");

    dataset.addValue(150, series2, "2016-12-19");
    dataset.addValue(130, series2, "2016-12-20");
    dataset.addValue(95, series2, "2016-12-21");
    dataset.addValue(195, series2, "2016-12-22");
    dataset.addValue(200, series2, "2016-12-23");
    dataset.addValue(180, series2, "2016-12-24");
    dataset.addValue(230, series2, "2016-12-25");

    return dataset;
  }

  public static void main(String[] args) {
    SwingUtilities.invokeLater(() -> {
      LineChartExample example = new LineChartExample("Line Chart Example");
      example.setAlwaysOnTop(true);
      example.pack();
      example.setSize(600, 400);
      example.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      example.setVisible(true);
    });
  }
}

输出:

JFreeChart条形图示例
赞(0)
未经允许不得转载:srcmini » JFreeChart折线图

评论 抢沙发

评论前必须登录!