JfreeChart 实例

JfreeChart 简单介绍

​ Jfreechart主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图等图形。

​ ChartFactory是org.jfree.chart包中抽象类,它负责生成标准的图表,它的常用静态方法createPieChart(),createBarchart()和createLineChart()分别可以创建标准的饼状图、柱形图(条形图)和折线图。

​ 创建一张表首先要创建对应的数据集dataset,数据集分为通用数据集(General Dataset主要用来创建饼状图),分类数据集(Category Dataset常用于柱状图和折线图),系列数据集(Series Dataset,常用于存储一系列数据和构建线图表)

jar包依赖:

    <dependency>
        <groupId>org.jfree</groupId>
        <artifactId>jfreechart</artifactId>
        <version>1.0.18</version>
    </dependency>
1、饼状图表
package com.yztc.pie;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

import java.awt.*;
import java.io.File;
import java.io.IOException;

/*饼状图*/
public class Try_Pie1 {
    public static void main(String[] args) throws IOException {
        //创建一个饼图的数据集
        DefaultPieDataset dataset = new DefaultPieDataset();
        dataset.setValue( "IPhone 5s", new Double( 20 ) );//名称和所占值
        dataset.setValue( "SamSung Grand", new Double( 20 ) );
        dataset.setValue( "MotoG", new Double( 40 ) );
        dataset.setValue( "Nokia Lumia", new Double( 10 ) );
        //创建表
        JFreeChart chart = ChartFactory.createPieChart(//如果是3D效果的话修改成createBarChart3D
                "Mobile Sales", // chart title图表标题
                dataset, // data数据集
                true, // include legend是否显示图例
                true,//是否生成工具      
                false );//是否生成URL连接 有交互行为时改为true

        chart.setBackgroundPaint( Color.BLACK ); //设置背景色为黑色
        chart.setBorderVisible( true );//设置边框是否可见
        chart.setBorderPaint( Color.BLACK );//设置边框是什么颜色
        /*
        3D效果的话添加
         final PiePlot3D plot = ( PiePlot3D ) chart.getPlot( );
        plot.setStartAngle( 270 );//设置起始角度
        plot.setForegroundAlpha( 0.60f );//设置透明度
        plot.setInteriorGap( 0.02 );//饼图绘图边缘与绘图区本身的空间设置
        */
        int width = 640; //图片的宽
        int height = 480; //图片的高
        File pieChart = new File( "c:/java01/PieChart.jpeg" );//图片保存的位置
        ChartUtilities.saveChartAsJPEG( pieChart, chart, width, height );
    }
}

PieChart

2、条形图表
package com.yztc.bar;

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.File;
import java.io.IOException;

public class Try_bar1 {

    public static  void main(String [] args) throws IOException {
        //初始化变量
        final String fiat = "FIAT";
        final String audi = "AUDI";
        final String ford = "FORD";
        final String speed = "Speed";
        final String millage = "Millage";
        final String userrating = "User Rating";
        final String safety = "safety";
        //创建数据集
        final DefaultCategoryDataset dataset = new DefaultCategoryDataset( );

        dataset.addValue( 1.0 , fiat , speed );//Y轴的值,圆柱体名称,X轴值
        dataset.addValue( 3.0 , fiat , userrating );
        dataset.addValue( 5.0 , fiat , millage );
        dataset.addValue( 5.0 , fiat , safety );

        dataset.addValue( 5.0 , audi , speed );//Y轴的值,圆柱体名称,X轴值
        dataset.addValue( 6.0 , audi , userrating );
        dataset.addValue( 10.0 , audi , millage );
        dataset.addValue( 4.0 , audi , safety );

        dataset.addValue( 4.0 , ford , speed );//Y轴的值,圆柱体名称,X轴值
        dataset.addValue( 2.0 , ford , userrating );
        dataset.addValue( 3.0 , ford , millage );
        dataset.addValue( 6.0 , ford , safety );

        JFreeChart barChart = ChartFactory.createBarChart( //3D效果的话直接改为createBarChart3D
                "CAR USAGE STATIStICS",//表的标题
                "Category", //Y轴标题
                "Score",//X轴标题
                dataset,//数据集
                PlotOrientation.VERTICAL,//图表方向:水平、垂直
                true,
                true,
                false);

        int width = 640;// 图片的宽
        int height = 480; //图片的高
        File BarChart = new File( "c:/java01/BarChart.jpeg" );
        ChartUtilities.saveChartAsJPEG( BarChart , barChart , width , height );
    }
}

BarChart

3、折线图表
package com.yztc.Line;

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.File;

public class Try_Line1 {

    public static void main( String[ ] args ) throws Exception
    {
        //创建一个数据集
        DefaultCategoryDataset line_chart_dataset = new DefaultCategoryDataset();
        line_chart_dataset.addValue( 15 , "schools" , "1970" );//Y轴的值,x轴小标题,X轴的值
        line_chart_dataset.addValue( 30 , "schools" , "1980" );
        line_chart_dataset.addValue( 60 , "schools" , "1990" );
        line_chart_dataset.addValue( 120 , "schools" , "2000" );
        line_chart_dataset.addValue( 240 , "schools" , "2010" );
        line_chart_dataset.addValue( 300 , "schools" , "2014" );

        JFreeChart lineChartObject = ChartFactory.createLineChart(//createLineChart3D设置修改为3D效果
                "Schools Vs Years",//表的标题
                "Year",//X轴的标题
                "Schools Count",//Y轴的标题
                line_chart_dataset,//数据集
                PlotOrientation.VERTICAL,//显示方式
                true,true,false);
        /*lineChartObject.setBackgroundPaint(  );
        * 设置背景颜色
        * */
        int width = 640; //图片的宽
        int height = 480;//图片的高
        File lineChart = new File( "c:/java01/LineChart.jpeg" );
        ChartUtilities.saveChartAsJPEG(lineChart ,lineChartObject, width ,height);//以图片(JPEG)的形式保存
}}

LineChart

jfreechart核心类主要有:

​ org.jfree.chart.JFreeChart:图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象。

​ org.jfree.data.category.XXXDataSet:数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类。

​ org.jfree.chart.plot.XXXPlot:图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持。

​ org.jfree.chart.axis.XXXAxis:用于处理图表的两个轴:纵轴和横轴。

​ org.jfree.chart.render.XXXRender:负责如何显示一个图表对象。设置图像的显示。

​ org.jfree.chart.urls.XXXURLGenerator:用于生成Web图表中每个项目的鼠标点击链接。

​ XXXXXToolTipGenerator:用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值