7.JFreeChart气泡图表

本文链接:https://blog.csdn.net/cnds123321/article/details/89600644

目录链接:https://blog.csdn.net/cnds123321/article/details/89600379

使用JFreeChart从一个给定的业务数据创建气泡图表。

使用气泡图显示在三维方式的信息。气泡绘制在其中(x,y)坐标相交的地方。气泡的大小被认为是范围或X和Y轴的数量。

气泡图(bubble chart)是可用于展示三个变量之间的关系。它与散点图类似,绘制时将一个变量放在横轴,另一个变量放在纵轴,而第三个变量则用气泡的大小来表示。排列在工作表的列中的数据(第一列中列出 x 值,在相邻列中列出相应的 y 值和气泡大小的值)可以绘制在气泡图中。气泡图与散点图相似,不同之处在于:气泡图允许在图表中额外加入一个表示大小的变量进行对比。

7.1 测试数据

项目ABCDE
销售额(X轴)32592768237910994069
数量(Y轴)9056389862
毛利率(气泡大小)33755%13%

7.2 基于swing的应用

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.DefaultXYZDataset;
​
import javax.swing.*;
import java.io.IOException;
​
public class Chart {
    public static void main(String[] args) throws IOException {
​
        //设置气泡表的数据集
        DefaultXYZDataset dataset=new DefaultXYZDataset();
        double x_Data[]={3259,2768,2379,1099,4069};//X坐标
        double y_Data[]={90,56,38,98,62};//Y坐标
        double size[]={3,3,7,5,2};//气泡的大小
        double d[][]={x_Data,y_Data,size};//将三个一维数组添加到二维数组中
        dataset.addSeries("毛利率",d);//设置下面的目录标签
​
        //实现简单的气泡图,设置基本的数据
        JFreeChart freeChart=ChartFactory.createBubbleChart(
                "数据气泡图",// 图表标题
                "项目",//y轴方向数据标签
                "分类",//x轴方向数据标签
                dataset,//数据集,即要显示在图表上的数据
                PlotOrientation.HORIZONTAL,//设置方向
                true,//是否显示图例
                true,//是否显示提示
                false//是否生成URL连接
        );
​
        //以面板显示
        ChartPanel chartPanel=new ChartPanel(freeChart);
        chartPanel.setPreferredSize(new java.awt.Dimension(560,400));
​
        //创建一个主窗口来显示面板
        JFrame frame=new JFrame("图表");
        frame.setLocation(500,400);
        frame.setSize(600,500);
​
        //将主窗口的内容面板设置为图表面板
        frame.setContentPane(chartPanel);
​
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

结果展示:

 

7.3 创建图像

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.DefaultXYZDataset;
​
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
​
public class Chart {
    public static void main(String[] args) throws IOException {
​
        //设置气泡表的数据集
        DefaultXYZDataset dataset=new DefaultXYZDataset();
        double x_Data[]={3259,2768,2379,1099,4069};//X坐标
        double y_Data[]={90,56,38,98,62};//Y坐标
        double size[]={3,3,7,5,2};//气泡的大小
        double d[][]={x_Data,y_Data,size};//将三个一维数组添加到二维数组中
        dataset.addSeries("毛利率",d);//设置下面的目录标签
​
        //实现简单的气泡图,设置基本的数据
        JFreeChart freeChart=ChartFactory.createBubbleChart(
                "数据气泡图",// 图表标题
                "项目",//y轴方向数据标签
                "分类",//x轴方向数据标签
                dataset,//数据集,即要显示在图表上的数据
                PlotOrientation.HORIZONTAL,//设置方向
                true,//是否显示图例
                true,//是否显示提示
                false//是否生成URL连接
        );
​
        //使用输出流输出图表文件
        //输出JPG文件
        OutputStream os=new FileOutputStream("c:/picture.jpg");
        ChartUtilities.writeChartAsJPEG(os,freeChart,500,500);
        //输出PNG文件
        OutputStream os_png=new FileOutputStream("c:/pictrue_png.png");
        ChartUtilities.writeChartAsPNG(os_png,freeChart,500,500);
    }
}

结果展示:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值