package com.xcx.spots.entity;
import java.awt.;
import java.io.File;
import java.util.;
import javax.imageio.ImageIO;
import com.xcx.spots.controller.api.JiffCDemo;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import java.util.List;
import java.util.Map.Entry;
public class BingUtils {
public static String createPort(String title, Map<String, Double> datas, Font font){
try {
//如果不使用Font,中文将显示不出来
DefaultPieDataset pds = new DefaultPieDataset();
//获取迭代器:
Set<Entry<String, Double>> set = datas.entrySet();
Iterator iterator=(Iterator) set.iterator();
Entry entry=null;
while(iterator.hasNext()){
entry=(Entry) iterator.next();
pds.setValue(entry.getKey().toString(),Double.parseDouble(entry.getValue().toString()));
}
/**
45 * 生成一个饼图的图表
46 *
47 * 分别是:显示图表的标题、需要提供对应图表的DateSet对象、是否显示图例、是否生成贴士以及是否生成URL链接
48 */
JFreeChart chart = ChartFactory.createPieChart(title, pds, true, false, true);
//设置图片标题的字体
chart.getTitle().setFont(font);
//得到图块,准备设置标签的字体
PiePlot plot = (PiePlot) chart.getPlot();
//设置分裂效果,需要指定分裂出去的key
plot.setExplodePercent("天使-彦", 0.1);
//设置标签字体
plot.setLabelFont(font);
//设置图例项目字体
chart.getLegend().setItemFont(font);
/**
66 * 设置开始角度(弧度计算)
67 *
68 * 度 0° 30° 45° 60° 90° 120° 135° 150° 180° 270° 360°
69 * 弧度 0 π/6 π/4 π/3 π/2 2π/3 3π/4 5π/6 π 3π/2 2π
70 */
plot.setStartAngle(new Float(3.14f / 2f));
//设置背景图片,设置最大的背景
Image img = ImageIO.read(new File("f:/test/1.jpg"));
chart.setBackgroundImage(img);
//设置plot的背景图片
img = ImageIO.read(new File("f:/test/2.jpg"));
plot.setBackgroundImage(img);
//设置plot的前景色透明度
plot.setForegroundAlpha(0.7f);
//设置plot的背景色透明度
plot.setBackgroundAlpha(0.0f);
//设置标签生成器(默认{0})
//{0}:key {1}:value {2}:百分比 {3}:sum
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}({1}道题)/{2}"));
//将内存中的图片写到本地硬盘
UUID uuid = UUID.randomUUID();
ChartUtilities.saveChartAsJPEG(new File("C:/Users/nh/Documents/a/spots/src/main/resources/static/images/"+uuid+".png"), chart, 600, 300);
String s="C:/Users/nh/Documents/a/spots/src/main/resources/static/images/"+uuid+".png";
return s;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
Font font = new Font("新宋体", Font.BOLD, 15);
Map<String, Double> map=new HashMap<String, Double>();
map.put("A(优秀)", (double) 1000);
map.put("B(良好)", (double) 700);
map.put("C(及格)", (double) 600);
map.put("D(不及格)", (double) 400);
String s= BingUtils.createPort("超神学院女神投票结果", map, font);
System.out.println(s);
}
}
package com.xcx.spots.entity;
import org.apache.commons.lang.StringUtils;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import java.awt.;
import java.io.File;
import java.io.FileOutputStream;
/**
- @Pr