📜  JFreeChart-气泡图(1)

📅  最后修改于: 2023-12-03 15:16:39.885000             🧑  作者: Mango

JFreeChart-气泡图

介绍

JFreeChart是一个Java开发的免费的图表库,用于制作各种类型的图表和数据可视化。其中,气泡图是一种常用的图表类型,可以展示三维数据,使得数据更加生动和直观。JFreeChart提供了多种气泡图的变体,并且可以灵活地自定义颜色、线条、标签等,符合各种需求。

功能

JFreeChart的气泡图可以实现如下功能:

  • 基于X、Y、Z轴数据生成三维图象;
  • 可以根据需要自定义颜色、线条、标签等;
  • 可以展示一组或多组气泡数据;
  • 支持鼠标交互,可以在图表上显示各种标签和提示信息。
使用
环境

在使用JFreeChart之前,需要安装Java运行环境和JFreeChart库。

<dependency>
    <groupId>org.jfree</groupId>
    <artifactId>jfreechart</artifactId>
    <version>1.5.1</version>
</dependency>
代码

下面是一个生成气泡图的示例代码:

import java.util.Random;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardXYToolTipGenerator;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYBubbleRenderer;
import org.jfree.data.xy.DefaultXYZDataset;
import javax.swing.JFrame;

public class BubbleChartDemo extends JFrame {
    public BubbleChartDemo(String title) {
        super(title);
        DefaultXYZDataset dataset = createDataset();
        JFreeChart chart = ChartFactory.createBubbleChart(
                "气泡图",
                "X",
                "Y",
                dataset,
                PlotOrientation.HORIZONTAL,
                true,
                true,
                false
        );
        renderChart(chart);
    }

    private void renderChart(JFreeChart chart) {
        XYPlot plot = chart.getXYPlot();
        XYBubbleRenderer renderer = new XYBubbleRenderer();
        renderer.setBubbleOutlineVisible(false);
        renderer.setSeriesToolTipGenerator(0, new StandardXYToolTipGenerator());
        plot.setRenderer(renderer);
        ChartPanel panel = new ChartPanel(chart);
        setContentPane(panel);
    }

    private DefaultXYZDataset createDataset() {
        DefaultXYZDataset dataset = new DefaultXYZDataset();
        double[][] data = new double[3][500];
        Random random = new Random();
        for (int i = 0; i < 500; i++) {
            for (int j = 0; j < 3; j++) {
                data[j][i] = random.nextDouble() * 100;
            }
        }
        dataset.addSeries("数据1", data);
        return dataset;
    }

    public static void main(String[] args) {
        BubbleChartDemo demo = new BubbleChartDemo("气泡图");
        demo.setSize(800, 600);
        demo.setVisible(true);
    }
}
效果

BubbleChartDemo

总结

JFreeChart是一个强大的Java图表库,可以实现各种类型的图表,其中包括气泡图。气泡图可以生动地展示三维数据,而且可以灵活自定义颜色、线条、标签等,非常适合数据可视化的应用场景。JFreeChart的气泡图可以在Java环境下快速实现,且具有交互性,可以方便地呈现各种数据,是数据可视化的强大工具。