3.JFreeChart线型图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cnds123321/article/details/89600487

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

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

3.1 测试数据

年份 数量
2010 15
2011 30
2012 45
2013 100
2014 150
2015 120
2016 170
2017 400
2018 600
2019 500

3.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 BarChart {
    public static void main(String[] args) throws IOException {
        //创建一个数据集对象
        DefaultCategoryDataset dataset=null;
​
        //设置数据集
        dataset=new DefaultCategoryDataset();
        //第一个参数是第三个参数的值,即“数量”,第二个参数表示目录轴的分类,第三个参数表示的x轴显示标签
        dataset.addValue(15,"数量","2010");
        dataset.addValue(30,"数量","2011");
        dataset.addValue(45,"数量","2012");
        dataset.addValue(100,"数量","2013");
        dataset.addValue(150,"数量","2014");
        dataset.addValue(120,"数量","2015");
        dataset.addValue(170,"数量","2016");
        dataset.addValue(400,"数量","2017");
        dataset.addValue(600,"数量","2018");
        dataset.addValue(500,"数量","2019");
​
        // 创建简单的折线图
         JFreeChart freeChart=ChartFactory.createLineChart(
                "数据折线图",// 图表标题
                "年份",// 水平轴的显示标签
                "数量",//垂直轴的显示标签
                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);
    }
}

结果展示:

3.3 创建图像

生成JPEG图像。

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 BarChart {
    public static void main(String[] args) throws IOException {
        //创建一个数据集对象
        DefaultCategoryDataset dataset=null;
​
        //设置数据集
        dataset=new DefaultCategoryDataset();
        //第一个参数是第三个参数的值,即“数量”,第二个参数表示目录轴的分类,第三个参数表示的x轴显示标签
        dataset.addValue(15,"数量","2010");
        dataset.addValue(30,"数量","2011");
        dataset.addValue(45,"数量","2012");
        dataset.addValue(100,"数量","2013");
        dataset.addValue(150,"数量","2014");
        dataset.addValue(120,"数量","2015");
        dataset.addValue(170,"数量","2016");
        dataset.addValue(400,"数量","2017");
        dataset.addValue(600,"数量","2018");
        dataset.addValue(500,"数量","2019");
​
        // 创建简单的折线图
         JFreeChart freeChart=ChartFactory.createLineChart(
                "数据折线图",// 图表标题
                "年份",// 水平轴的显示标签
                "数量",//垂直轴的显示标签
                dataset,//数据集,即要显示在图表上的数据
                PlotOrientation.VERTICAL,//图表方向:水平,垂直
                true,//是否显示图例
                false,//是否显示提示
                false//是否生成URL连接
        );
​
        //使用输出流输出图表文件
        OutputStream os=new FileOutputStream("c:/picture.jpg");
        ChartUtilities.writeChartAsJPEG(os,freeChart,500,500);
    }
}

结果展示:

猜你喜欢

转载自blog.csdn.net/cnds123321/article/details/89600487