public class jfreeChartUtil1 { public void setPic(activityVo activity) { DefaultCategoryDataset datasetTemp = new DefaultCategoryDataset(); CategoryDataset dataset; //设值 List events = new ArrayList(); events = activity.getEvents(); for(int i =0; i < events.size(); i++) {
DefaultCategoryDataset datasetTemp = new DefaultCategoryDataset();
CategoryDataset dataset;
//设值
List events = new ArrayList();
events = activity.getEvents();
for(int i =0; i < events.size(); i++) {
datasetTemp.addValue(((eventVo)events.get(i)).getCount(), "", ((eventVo)events.get(i)).getEvent_name()+"十大新闻事件当前投票情况十大新闻事件当前投票情况");
}
dataset = datasetTemp;
JFreeChart chart = ChartFactory.createBarChart("十大新闻事件当前投票情况", // 图表标题
" ", // 目录轴的显示标签
"票数", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
false, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
); FileOutputStream fos_jpg = null;
try {
CategoryPlot plot = chart.getCategoryPlot();// 获得图表区域对象 // 设置图表的颜色
//BarRenderer3D renderer = new BarRenderer3D();
CategoryItemRenderer renderer = plot.getRenderer();
//设置每个柱子代表的颜色
renderer.setSeriesPaint(0, new Color(255, 255, 255)); // 显示每个柱的数值,并修改该数值的字体属性
//renderer.setMaxBarWidth(0.8);
//renderer.setItemMargin(0.8); renderer.setLabelGenerator(new StandardCategoryLabelGenerator());
renderer.setItemLabelFont(new Font("黑体", Font.BOLD, 9));// 12号黑体加粗
renderer.setItemLabelPaint(Color.black);
renderer.setPositiveItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
//renderer.setItemLabelAnchorOffset(10D);
renderer.setItemLabelsVisible(true);
plot.setForegroundAlpha(0.65f);//设置柱的透明度
plot.setRenderer(renderer); //设置图片标题的位置
plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT); chart.setBackgroundPaint(Color.ORANGE);//设置背景颜色 File file = new File(activity.getPic_path());
if(!file.exists()) {
file.mkdirs();
}
fos_jpg = new FileOutputStream("D:\\bg_nba_grant0.jpg");
if(events.size() < 4) {
ChartUtilities.writeChartAsJPEG(fos_jpg, 500, chart, 500, 200,
null);
} else {
ChartUtilities.writeChartAsJPEG(fos_jpg, 500, chart, 1000, events.size()*50,
null);
}
}catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos_jpg.close();
} catch (Exception e) {
}
}
}