2.JFreeChart条形图

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

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

2.1 测试数据

学科最高分平均分最低分
语文988960
数学999070
英语807533

2.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.category.DefaultCategoryDataset;
​
import javax.swing.*;
import java.io.*;
​
public class Chart {
    public static void main(String[] args) throws IOException {
        //创建一个数据集对象
        DefaultCategoryDataset dataset=null;
​
        //设置数据集
        dataset=new DefaultCategoryDataset();
        //第一个参数是第三个参数的值,即“最高分”,第二个参数表示目录轴的分类,第三个参数表示的x轴显示标签
        dataset.addValue(98,"语文","最高分");
        dataset.addValue(89,"语文","平均分");
        dataset.addValue(60,"语文","最低分");
        dataset.addValue(99,"数学","最高分");
        dataset.addValue(90,"数学","平均分");
        dataset.addValue(70,"数学","最低分");
        dataset.addValue(80,"英语","最高分");
        dataset.addValue(75,"英语","平均分");
        dataset.addValue(33,"英语","最低分");
​
        // 创建简单的条形图
        JFreeChart freeChart=ChartFactory.createBarChart(
                "学生信息",// 图表标题
                "学科",// 水平轴的显示标签
                "成绩",//垂直轴的显示标签
                dataset,//数据集,即要显示在图表上的数据
                PlotOrientation.VERTICAL,//图表方向:水平,垂直
                true,//是否显示图例
                false,//是否显示提示
                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);
    }
}

结果展示:

 

2.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.category.DefaultCategoryDataset;
​
import java.io.*;
​
public class Chart {
    public static void main(String[] args) throws IOException {
        //创建一个数据集对象
        DefaultCategoryDataset dataset=null;
​
        //设置数据集
        dataset=new DefaultCategoryDataset();
        //第一个参数是第三个参数的值,即“最高分”,第二个参数表示目录轴的分类,第三个参数表示的x轴显示标签
        dataset.addValue(98,"语文","最高分");
        dataset.addValue(89,"语文","平均分");
        dataset.addValue(60,"语文","最低分");
        dataset.addValue(99,"数学","最高分");
        dataset.addValue(90,"数学","平均分");
        dataset.addValue(70,"数学","最低分");
        dataset.addValue(80,"英语","最高分");
        dataset.addValue(75,"英语","平均分");
        dataset.addValue(33,"英语","最低分");
​
        // 创建简单的条形图
        JFreeChart freeChart=ChartFactory.createBarChart(
                "学生信息",// 图表标题
                "学科",// 水平轴的显示标签
                "成绩",//垂直轴的显示标签
                dataset,//数据集,即要显示在图表上的数据
                PlotOrientation.VERTICAL,//图表方向:水平,垂直
                true,//是否显示图例
                false,//是否显示提示
                false//是否生成URL连接
        );
​
        //使用输出流输出图表文件
        OutputStream os=new FileOutputStream("c:/picture.jpg");
        ChartUtilities.writeChartAsJPEG(os,freeChart,500,500);
    }
}

结果展示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值