<!--用于生成图片 -->
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.0.19</version>
</dependency>
所需依赖
创建工具类
/**
* 创建饼图图片
* 返回地址集合
* @return
*/
public static void createChartImg( List<List<String>> list , String filePath ) {
File file;
int i = 0;
DefaultPieDataset pds = new DefaultPieDataset();
if (list != null && list .size() > 0) {
for (i = 1; i < list.size(); i++) {
//设置饼图数据
pds.setValue(tableList.get(i).get(0), Double.parseDouble(tableList.get(i).get(1)));
}
}
if (i > 0) {
createChart(pds, filePath, null );
}
return fileMap;
}
/**
* 创建饼图并保存到本地
*
* @return
*/
public static void createChart(DefaultPieDataset pds, String filePath, String title) {
try {
// 分别是:显示图表的标题、需要提供对应图表的DateSet对象、是否显示图例、是否生成贴士以及是否生成URL链接
JFreeChart chart = ChartFactory.createPieChart(title, pds, false, false, true);
// 如果不使用Font,中文将显示不出来
java.awt.Font font = new java.awt.Font("宋体", Font.BOLD, 12);
// 设置图片标题的字体
chart.getTitle().setFont(font);
// 得到图块,准备设置标签的字体
PiePlot plot = (PiePlot) chart.getPlot();
plot.setShadowPaint(Color.WHITE);
//设置边框颜色
plot.setOutlinePaint(Color.WHITE);
// 设置标签字体
plot.setLabelFont(font);
plot.setStartAngle(new Float(3.14f / 2f));
// 设置plot的前景色透明度
plot.setForegroundAlpha(0.7f);
// 设置plot的背景色透明度
plot.setBackgroundAlpha(0.0f);
plot.setBackgroundImageAlpha(0);
// 设置标签生成器(默认{0})
// {0}:key {1}:value {2}:百分比 {3}:sum
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}({1}占{2})"));
// 将内存中的图片写到本地硬盘
ChartUtilities.saveChartAsJPEG(new File(filePath), chart, 600, 300); //600宽度,300高度
} catch (Exception e) {
e.printStackTrace();
}
}
生成如图
版权声明:本文为weixin_50074995原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。