Java 折线图需要的数据

折线图是一种常用的数据可视化工具,可以帮助我们更直观地了解数据的变化趋势。在 Java 中,我们可以利用一些开源库来实现折线图的绘制,比如 JFreeChart、XChart 等。在使用这些库之前,我们需要准备好相应的数据。

折线图需要的数据结构

在绘制折线图之前,我们需要准备好以下数据结构:

  • x 轴数据:通常是时间或者连续的数值。
  • y 轴数据:对应于 x 轴数据的数值。
  • 可能有多条折线:多条折线可以在同一个图表上展示不同的数据集。

准备数据示例

下面我们用一个示例来说明如何准备折线图需要的数据。假设我们要绘制一个月份与销售额的关系图,数据如下:

月份 销售额(万元)
1 10
2 15
3 20
4 18
5 25
6 30

我们可以用 Java 中的 List 来存储这些数据:

import java.util.ArrayList;
import java.util.List;

public class LineChartData {
    public static void main(String[] args) {
        List<Integer> months = new ArrayList<>();
        months.add(1);
        months.add(2);
        months.add(3);
        months.add(4);
        months.add(5);
        months.add(6);

        List<Integer> sales = new ArrayList<>();
        sales.add(10);
        sales.add(15);
        sales.add(20);
        sales.add(18);
        sales.add(25);
        sales.add(30);

        // 绘制折线图的代码
    }
}

在这段代码中,我们使用了两个 List 分别存储月份和销售额数据。

使用 JFreeChart 绘制折线图

JFreeChart 是一个开源的 Java 图表库,可以用来绘制各种类型的图表,包括折线图。下面是一个使用 JFreeChart 绘制折线图的示例代码:

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;

import javax.swing.*;
import java.awt.*;

public class LineChartExample {
    public static void main(String[] args) {
        XYSeries series = new XYSeries("Sales");

        series.add(1, 10);
        series.add(2, 15);
        series.add(3, 20);
        series.add(4, 18);
        series.add(5, 25);
        series.add(6, 30);

        XYSeriesCollection dataset = new XYSeriesCollection();
        dataset.addSeries(series);

        JFreeChart chart = ChartFactory.createXYLineChart(
                "Monthly Sales Chart",
                "Month",
                "Sales (in 10,000)",
                dataset,
                PlotOrientation.VERTICAL,
                true,
                true,
                false
        );

        XYPlot plot = chart.getXYPlot();
        plot.setDomainPannable(true);
        plot.setRangePannable(true);

        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        renderer.setSeriesPaint(0, Color.BLUE);
        plot.setRenderer(renderer);

        JFrame frame = new JFrame("Line Chart Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ChartPanel chartPanel = new ChartPanel(chart);
        frame.add(chartPanel, BorderLayout.CENTER);
        frame.setSize(800, 600);
        frame.setVisible(true);
    }
}

在这段代码中,我们创建了一个 XYSeries 对象来存储销售额数据,并将其添加到 XYSeriesCollection 中。然后使用 ChartFactory 创建一个 XYLineChart,设置图表的标题、横纵坐标的标签等属性,最后将图表显示在 JFrame 中。

总结

在 Java 中绘制折线图需要准备好相应的数据结构,并使用图表库来实现图表的绘制。本文介绍了如何准备折线图需要的数据以及使用 JFreeChart 绘制折线图的示例代码。