柱图:
private String createYXChart(String fileName, Map dataMap,String chartTitle,int days,HashMap labelMap,Date fromDate,Date endDate,HttpServletRequest request,int width,int height) throws Exception {
String path = request.getSession().getServletContext().getRealPath("/images/temp/");
Calendar cal = Calendar.getInstance();
// String filename=cal.getTimeInMillis()+".png";
String filename=fileName;
String chartFileName = path + "/"+filename;
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
cal.setTime(fromDate);
for (int i = 0; i < days; i++) {
String curDay = format.format(cal.getTime());
if (dataMap.get(curDay)!=null){
Object vl=dataMap.get(curDay);
Long value1= Long.valueOf(vl.toString());
dataset.addValue(value1, "", curDay.substring(4));
}else{
dataset.addValue(0, "", curDay.substring(4));
}
cal.add(Calendar.DAY_OF_MONTH, 1);
}
JFreeChart chart = ChartFactory.createBarChart3D(chartTitle, "the latest "+days+" days", format.format(fromDate) + "-" + format.format(endDate), dataset, PlotOrientation.VERTICAL, false, false, false);
chart.setBackgroundPaint(new Color(0xE1E1E1));
CategoryPlot plot = chart.getCategoryPlot();
// Set Y-axis
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
CategoryAxis domainAxis = plot.getDomainAxis();
//Set the distance from the left picture
domainAxis.setLowerMargin(0.01);
domainAxis.setTickLabelFont(new Font("arial",Font.PLAIN,8));
BarRenderer3D renderer = new BarRenderer3D();
//Set column's color
renderer.setSeriesPaint(0, new Color(0xff00));
plot.setRenderer(renderer);
File file = new File(chartFileName);
ChartUtilities.saveChartAsPNG(file,chart,width,height);
return filename;
}
饼图:
private String createPieChart(String fileName, Map dataMap,String chartTitle,String title, Map labelMap,String fromDate,String endDate,HttpServletRequest request,int width,int height) throws Exception {
String path = request.getSession().getServletContext().getRealPath("/images/temp/");
// Calendar cal = Calendar.getInstance();
String filename = fileName;
String chartFileName = path + "/"+filename;
DefaultPieDataset dataset = new DefaultPieDataset();
//put chart data
for(Iterator item=dataMap.keySet().iterator();item.hasNext();){
Object obj=(Object)item.next();
if (labelMap!=null && labelMap.get(obj)!=null){
dataset.setValue(labelMap.get(obj).toString(),Integer.parseInt(dataMap.get(obj).toString()));
}else{
dataset.setValue(obj.toString(),Integer.parseInt(dataMap.get(obj).toString()));
}
}
// Change the property of the chart
JFreeChart chart = ChartFactory.createPieChart3D(chartTitle,dataset,false, true, false);
PiePlot pieplot = (PiePlot)chart.getPlot();
pieplot.setLabelFont(new Font("arial", 0, 10));
pieplot.setNoDataMessage("None data");
pieplot.setCircular(true);
pieplot.setLabelGap(0.02D);
pieplot.setBackgroundPaint(new Color(0xE1E1E1));
pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0} - {2}",NumberFormat.getNumberInstance(),new DecimalFormat("0.00%"))
);
LegendTitle legendtitle = new LegendTitle(chart.getPlot());
BlockContainer blockcontainer = new BlockContainer(new BorderArrangement());
LabelBlock labelblock = new LabelBlock(title, new Font("arial", 1, 12));
labelblock.setPadding(5D, 5D, 5D, 5D);
blockcontainer.add(labelblock, RectangleEdge.TOP);
BlockContainer blockcontainer1 = legendtitle.getItemContainer();
blockcontainer1.setPadding(2D, 10D, 5D, 2D);
blockcontainer.add(blockcontainer1);
legendtitle.setWrapper(blockcontainer);
legendtitle.setPosition(RectangleEdge.RIGHT);
legendtitle.setWrapper(blockcontainer);
legendtitle.setPosition(RectangleEdge.RIGHT);
legendtitle.setHorizontalAlignment(HorizontalAlignment.LEFT);
chart.addSubtitle(legendtitle);
if (fromDate!=null && fromDate.trim().length()>0 && endDate!=null && endDate.trim().length()>0){
TextTitle t = new TextTitle(fromDate+"-"+endDate);
chart.addSubtitle(0, t);
}
chart.setBackgroundPaint(new Color(0xE1E1E1));
File file = new File(chartFileName);
ChartUtilities.saveChartAsPNG(file,chart,width,height);
return filename;
}
分享到:
相关推荐
这篇博文中,我们将深入探讨如何使用JFreeChart来创建柱状图和饼图,并理解其背后的源码机制。 ### 一、JFreeChart库介绍 JFreeChart库是开源的Java图形库,提供了一套完整的API,支持生成各种复杂图表,如折线图...
JFreeChart是一个流行的Java库,用于生成各种类型的图表,包括折线图、饼图和柱状图,甚至堆栈柱状图。这个压缩包中的"CreateChartServiceImpl.java"文件很可能包含了一个实现这些功能的服务类。 首先,我们要理解...
在Java编程环境中,JFreeChart库是一个非常强大的工具,它允许开发者轻松地创建各种图表,如柱状图、饼图、时序图和折线图等。这些图表在数据分析、报表展示以及各种可视化应用中非常常见。下面我们将详细介绍如何...
JFreeChart 是一个广泛使用的开源 Java 图形库,它允许开发人员轻松地创建各种图表,包括折线图、饼图和柱状图。这个库为 Java 应用程序提供了丰富的图表功能,适用于数据可视化的需求,无论是简单的报告还是复杂的...
**JFreeChart库详解:创建3D曲线图、3D饼图和3D柱状图** JFreeChart是一个强大的Java图形库,它提供了多种图表类型,包括曲线图、饼图和柱状图,且支持2D和3D效果。本篇文章将深入探讨如何使用JFreeChart来创建这些...
jfreechart 生成折线图、饼图、柱状图、堆栈柱状图 jfreechart 是一个功能强大且流行的 Java 图表库,用于生成各种类型的图表,包括折线图、饼图、柱状图、堆栈柱状图等。在本文中,我们将使用 jfreechart 1.0.8a ...
下面我们将深入探讨JFreeChart的基本使用、柱状图和饼状图的创建方法,以及如何结合源码进行学习。 首先,JFreeChart库提供了丰富的图表类型,包括柱状图(BarChart)、饼状图(PieChart)、线形图(LineChart)、...
jFreeChart是Java编程语言中一个广泛使用的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线形图等。博主通过具体的代码示例,详细解释了如何利用jFreeChart生成柱状图,这对于数据可视化和报告生成非常...
JFreeChart是一款强大的Java图表库,它为开发者提供了丰富的图形绘制功能,包括曲线图、饼图和柱状图等。这个库是免费的,适用于各种项目,无论是商业应用还是个人学习,都能从中受益。在本篇文章中,我们将深入探讨...
你可以创建一个`CategoryDataset`对象,将数据组织成类别和值,然后使用`JFreeChart`的`createBarChart()`方法来生成柱状图。 饼图是另一种常用的数据表示形式,适合显示各部分占整体的比例。JFreeChart允许你创建...
标题中提到的“jfreechart生成折线图、饼图、柱状图、堆栈柱状图”是指使用Java的一个开源图形库JFreeChart来创建不同类型的统计图表。JFreeChart是一个功能全面、成熟的Java图表库,广泛应用于各种应用程序中进行...
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括饼图、柱状图等,并且能够与数据库进行交互,为数据分析和可视化提供便利。在这个MyEclipse项目中,你将找到如何利用JFreeChart来实现这些...
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的高质量图表,如饼图、柱状图、线形图、散点图等。这个库在IT行业中被广泛应用于数据分析、报表生成以及各种可视化应用中。在给定的压缩包文件中,...
这个压缩包提供的源代码示例,展示了如何使用 JFreeChart 创建和展示柱状图。 柱状图是一种常用的数据可视化方式,通过矩形的长度或高度来表示数据量的大小。在商业智能和统计分析中,柱状图能够清晰地比较不同类别...
在JFreeChart中,可以使用`CategoryPlot`类来创建柱状图。我们需要准备数据集,通常是`DefaultCategoryDataset`对象,然后将数据集添加到`CategoryPlot`中,最后设置图表的外观和样式,如颜色、标签等。 接着,我们...
Java 使用 JFreeChart 创建柱形图是一种常见的数据可视化方法,尤其在数据分析和Web应用程序中。JFreeChart 是一个强大的开源库,它提供了多种图表类型,包括柱形图、饼图、线图等,使得开发者能够方便地将数据转化...
在JFreeChart中,你可以创建CategoryDataset,填充数据,然后使用CategoryPlot和JFreeChart类创建柱状图。每个柱子代表类别,其高度表示该类别的值。 **饼图**则用于展示各部分占整体的比例,JFreeChart提供了...