标签
文档
报表
字数
670 字
阅读时间
4 分钟
一、概述
JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF或EXCEL关联。
二、使用Demo
2.1 添加依赖
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.5.4</version>
</dependency>
implementation 'org.jfree:jfreechart:1.5.4'2.2 绘制饼状图
java
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtils;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.data.general.DefaultPieDataset;
import java.awt.*;
import java.io.File;
import java.io.IOException;
/**
* 饼图
*/
public class Demo1 {
public static void main(String[] args) throws IOException {
//构建饼图的数据集
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("aaa", 10);
dataset.setValue("bbb", 20);
dataset.setValue("ccc", 5);
StandardChartTheme standardChartTheme = new StandardChartTheme("CN");
//设置标题字体
standardChartTheme.setExtraLargeFont(new Font("华文宋体", Font.BOLD, 20));
//设置图例的字体
standardChartTheme.setRegularFont(new Font("华文宋体", Font.BOLD, 15));
//设置轴向的字体
standardChartTheme.setLargeFont(new Font("华文宋体", Font.BOLD, 15));
//应用主题样式
ChartFactory.setChartTheme(standardChartTheme);
//参数1 title 标题
// 参数2 dataset 数据集
// 参数3 是否开启图例
// 参数4 是否开启工具栏
// 参数5 是否开启url跳转
JFreeChart chart = ChartFactory.createPieChart3D("Demo", dataset, true, false, false);
//生成一张图表的图片文件
ChartUtils.saveChartAsPNG(new File("e:\\chart1.png"), chart, 400, 300);
}
}2.3 绘制折线图
java
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtils;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.data.category.DefaultCategoryDataset;
import java.awt.*;
import java.io.File;
import java.io.IOException;
/**
* 折线图
*/
public class Demo2 {
public static void main(String[] args) throws IOException {
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.addValue(15,"aaa","2022");
dataset.addValue(11,"aaa","2023");
dataset.addValue(10,"aaa","2024");
dataset.addValue(16,"aaa","2025");
dataset.addValue(10,"bbb","2022");
dataset.addValue(30,"bbb","2023");
dataset.addValue(6,"bbb","2024");
dataset.addValue(16,"bbb","2025");
dataset.addValue(10,"ccc","2022");
dataset.addValue(20,"ccc","2023");
dataset.addValue(30,"ccc","2024");
dataset.addValue(15,"ccc","2025");
StandardChartTheme standardChartTheme=new StandardChartTheme("CN");
//设置标题字体
standardChartTheme.setExtraLargeFont(new Font("华文宋体",Font.BOLD,20));
//设置图例的字体
standardChartTheme.setRegularFont(new Font("华文宋体", Font.PLAIN,15));
//设置轴向的字体
standardChartTheme.setLargeFont(new Font("华文宋体",Font.PLAIN,15));
//应用主题样式
ChartFactory.setChartTheme(standardChartTheme);
//参数1 title 标题
//参数2 x轴的说明
//参数3 Y轴的说明
//参数4 数据集
JFreeChart chart= ChartFactory.createLineChart("demo", "年度", "数量", dataset);
//生成一张图表的图片文件
ChartUtils.saveChartAsPNG(new File("e:\\chart2.png"), chart, 400, 300);
}
}2.4 绘制柱状图
java
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtils;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.data.category.DefaultCategoryDataset;
import java.awt.*;
import java.io.File;
import java.io.IOException;
/**
* 柱状图
*/
public class Demo3 {
public static void main(String[] args) throws IOException {
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
dataset.addValue(15,"aaa","2022");
dataset.addValue(11,"aaa","2023");
dataset.addValue(10,"aaa","2024");
dataset.addValue(16,"aaa","2025");
dataset.addValue(10,"bbb","2022");
dataset.addValue(30,"bbb","2023");
dataset.addValue(6,"bbb","2024");
dataset.addValue(16,"bbb","2025");
dataset.addValue(10,"ccc","2022");
dataset.addValue(20,"ccc","2023");
dataset.addValue(30,"ccc","2024");
dataset.addValue(15,"ccc","2025");
StandardChartTheme standardChartTheme=new StandardChartTheme("CN");
//设置标题字体
standardChartTheme.setExtraLargeFont(new Font("华文宋体",Font.BOLD,20));
//设置图例的字体
standardChartTheme.setRegularFont(new Font("华文宋体", Font.PLAIN,15));
//设置轴向的字体
standardChartTheme.setLargeFont(new Font("华文宋体",Font.PLAIN,15));
//应用主题样式
ChartFactory.setChartTheme(standardChartTheme);
//参数1 title 标题
//参数2 x轴的说明
//参数3 Y轴的说明
//参数4 数据集
JFreeChart chart= ChartFactory.createBarChart("demo", "年度", "数量", dataset);
//生成一张图表的图片文件
ChartUtils.saveChartAsPNG(new File("e:\\chart3.png"), chart, 400, 300);
}
}