1.准备Jar包:jfreechart-1.0.13.jar和jcommon-1.0.16.jar
2.配置web.xml
<!-- JFreeChart -->
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/DisplayChart</url-pattern>
</servlet-mapping>
3.Action(Struts2)
/**
* 曲线图
* */
@SuppressWarnings("deprecation")
public String quxiantu() throws Exception {
String plateNum = request.getParameter("plateNum");
String startDateTimeStr = request.getParameter("startTime");
String stopDateTimeStr = request.getParameter("stopTime");
List<Object[]> dataSet = mileageStatService.getVehicleFuelByPlateNum(plateNum, startDateTimeStr, stopDateTimeStr);
//访问量统计时间线
TimeSeries timeSeries = new TimeSeries(plateNum+"油耗统计", Minute.class);
//时间曲线数据集合
TimeSeriesCollection lineDataset = new TimeSeriesCollection();
//构造数据集合
for(Object[] obj : dataSet){
timeSeries.addOrUpdate(new Minute(dateformat.parse(obj[0].toString())), Long.valueOf(obj[1].toString()));
}
lineDataset.addSeries(timeSeries);
//**************************************************************************************
//解决中文乱码
StandardChartTheme standardChartTheme = new StandardChartTheme("JFree"); //或者为Legacy
standardChartTheme.setLargeFont(new Font("宋体", Font.BOLD, 12));
standardChartTheme.setRegularFont(new Font("宋体", Font.BOLD, 12));
standardChartTheme.setExtraLargeFont(new Font("宋体", Font.BOLD, 12));
standardChartTheme.setSmallFont(new Font("宋体", Font.BOLD, 12));
ChartFactory.setChartTheme(standardChartTheme);
//**************************************************************************************
JFreeChart chart = ChartFactory.createTimeSeriesChart("油耗统计时间线", "时间", "油耗", lineDataset, true, true, true);
//***********************************************************************************
XYPlot plot = chart.getXYPlot();
//设置网格背景颜色
plot.setBackgroundPaint(Color.white);
//设置网格竖线颜色
plot.setDomainGridlinePaint(Color.LIGHT_GRAY);
//设置网格横线颜色
plot.setRangeGridlinePaint(Color.LIGHT_GRAY);
//设置曲线图与xy轴的距离
plot.setAxisOffset(new RectangleInsets(0D, 0D, 0D, 10D));
//设置X轴(日期轴)
DateAxis dateaxis = (DateAxis) plot.getDomainAxis();
//时间轴间距是5分钟,格式为小时:分钟
dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MINUTE, 30));
dateaxis.setDateFormatOverride(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
//X轴日期垂直显示(没找到倾斜多少度显示)
dateaxis.setVerticalTickLabels(true);
//***********************************************************************************
//设置子标题
TextTitle subtitle = new TextTitle(startDateTimeStr+" 到 "+stopDateTimeStr, new Font("宋体", Font.PLAIN, 12));
chart.addSubtitle(subtitle);
//设置主标题
chart.setTitle(new TextTitle(plateNum+"油耗统计", new Font("黑体", Font.BOLD, 15)));
chart.setAntiAlias(true);
String filename = ServletUtilities.saveChartAsPNG(chart, 700, 500, null, request.getSession());
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
request.setAttribute("graphURL", graphURL);
request.setAttribute("filename", filename);
return "quxiantu";
}
4.jsp
<img src="${graphURL}" width="550" height="350" border="0" usemap="#${filename}" >
附图:


- 大小: 30.8 KB
分享到:
相关推荐
时序图横坐标标尺只能显示奇数天
JFreeChart双Y轴折线图实例,可以直接运行,实例类为LineChartDemo1.JAVA,有注释。 若想在web工程使用只需如下。 String filename = ServletUtilities.saveChartAsPNG(jfreechart, 600, 400, null, session); ...
该程序为main 函数,定义了三个方法,分别是jfreechart三种实现折线图的类型,返回的是一个chart 本程序是把图片保存到本地,当然实际应用中,只要在程序和页面中做相关配置即可以使用。 因为图片带点透明,所以...
介绍JFreeChart web制图,包括:下载与配置JFreeChart、柱状图、饼状图、时序图、甘特图、区域图、曲线图、组合图、仪表图、多轴图、离散图、衰退图、实验图。附录中包括工程的全部代码
通过上述步骤,我们成功地在Java程序中利用JFreeChart实现了时序图的绘制。这种方式不仅提高了数据展示的效果,还使得数据更加易于理解和分析。此外,JFreeChart的强大功能还可以进一步扩展,例如支持多种图表类型、...
- 曲线图和面积图 - 散点图和气泡图 - 时序图(高/低/开/收盘图和蜡烛图) - 复合图 - 排列图(Pareto charts) - 甘特图(Gantt charts) **JFreeChart的关键类** - **JFreeChart**:图表对象,所有类型的图表最终...
- **应用场景**: 它支持多种图表类型,如柱状图、饼图、曲线图、甘特图等,适用于Swing和Web应用程序中。 #### 二、JFreeChart产品家族 - **JFreeReport**: 报表解决方案工具,用于生成复杂报表。 - **JFreeChart**...
JFreeChart是一款强大的Java图形库,它为开发者提供了丰富的图表绘制功能,涵盖了多种类型的图表,如饼图、曲线图、折线图、柱状图、时序图、点图等,满足了各种数据分析和可视化需求。这个开源项目是SourceForge...
JFreeChart 是一个强大的 Java 库,专门用于创建各种类型的图形和图表,包括但不限于饼图、柱状图、曲线图、散点图、时序图、甘特图、股票行情图以及混合图等。它提供了丰富的功能,可以满足大多数商业应用中的图形...
JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。
6. **区域图(Area Chart)、曲线图(Line Chart)和组合图(Combined Chart)** 区域图显示填充的区域,线图则通过线条表示数据趋势。`AreaRenderer` 和 `LineAndShapeRenderer` 分别用于这两个图表类型。组合图则...
line and area charts :曲线图 scatter plots and bubble charts time series, high/low/open/close charts and candle stick charts :时序图 combination charts :复合图 Pareto charts Gantt charts...
JFreeChart是一款强大的Java库,用于创建高质量的2D图表,包括饼图、直方图、曲线图、时序图等多种类型。这个“jfreechart样例”压缩包提供了使用JFreeChart库进行图表制作的实际示例代码,帮助开发者更好地理解和...
JFreeChart 是一个强大的开源 Java 图形库,用于生成高质量的图表,包括柱状图、饼图、时序图和曲线图等。它为 Java 应用程序提供了丰富的图表功能,无论是在桌面应用、Web 应用还是移动应用中,JFreeChart 都能发挥...
JFreeChart 是一个开源的 Java 图形库,用于创建各种类型的图表,如饼图、柱状图、曲线图、散列图、时序图、区域图、差异图、步骤图、混合图、甘特图以及复合图等。其最新稳定版本为 1.0.0。JFreeChart 的设计使得...
3. 曲线图和面积图:展示数据随时间变化的趋势。 4. 散点图和气泡图:用于表示两个变量之间的关系。 5. 时序图、高低开收盘图和蜡烛图:常用于金融数据分析。 6. 排列图(Pareto图):突出显示最重要的因素。 7. ...
line and area charts:曲线图 scatter plots and bubble charts time series, high/low/open/close charts and candle stick charts:时序图 combination charts:复合图 Pareto charts Gantt charts:甘特图...
Java生成图形报表组件是一种强大的工具,它主要用于在Java应用程序中创建和展示各种类型的图表,如曲线图、饼状图、柱状图以及时序图。这个组件通常包含一系列的类和方法,允许开发者通过编程方式定义数据源、样式和...
1. 图表类型多样化:提供了饼图、柱状图、曲线图、散点图、气泡图、时序图、高低开盘图、股票行情图、甘特图、温度计图、刻度图等多种图表类型。 2. 高度可定制化:用户可以根据需要对图表进行自定义,例如设置标题...
- 曲线图和面积图 - 散点图和气泡图 - 时序图(高、低、开、收盘图和烛台图) - 复合图 - 帕累托图 - 甘特图 - 风向图、仪表盘图和符号图 - 集成PNG和JPEG格式导出,以及与PDF和Excel的关联功能 这些图表类型广泛...