`
荼罗庄
  • 浏览: 46670 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

JFreeChart生成图片到服务器指定目录

阅读更多
//曲线图
public String imageLine(TimeSeries chinaTs,HttpSession session) {
String title = "访问量统计";
String domain = "";
String range = "访问量";
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.removeAllSeries();
dataset.addSeries(chinaTs);
JFreeChart chart = ChartFactory.createTimeSeriesChart(title, domain,
range, dataset, true, true, false);
Font font = new Font("宋体", Font.PLAIN, 12);
XYPlot plot = (XYPlot) chart.getPlot();
XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer) plot
.getRenderer();
plot.setBackgroundPaint(new Color(199, 237, 204));
xylineandshaperenderer.setBaseShapesVisible(true);
xylineandshaperenderer.setBaseItemLabelsVisible(true);
DateAxis axis = (DateAxis) plot.getDomainAxis();
plot.getRangeAxis().setLabelFont(font);
chart.getLegend().setItemFont(font);
axis.setLabelFont(font);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
axis.setDateFormatOverride(format);
chart.setTitle(new TextTitle(chart.getTitle().getText(), font));
chart.getLegend().setItemFont(font);
String filename = "";
try {
FreeChartUtil.setVisitImageBase(visitImageBase);
filename = FreeChartUtil.saveChartAsJPEG(chart, 700, 400, session);
} catch (IOException e) {
}
model.addAttribute("graphURL",
"<img src='http://jchen.iteye.com/admin/" + filename
+ "'>");
return "";
}
FreeChartUtil 重写了图片的保存路径

jfreeChart在unix下运行的中文字体问题还是给我们带来了诸多不便,如果在unix下找不到相应的中文字体,中文将会被小方框取代

//柱形图
public String imageBar(DefaultCategoryDataset dataset, HttpSession session) {
// 图表标题 X轴标签 Y轴标签 数据集合 图表方向:垂直 是否显示图例 是否生成工具 是否生成URL链接
JFreeChart chart = ChartFactory.createBarChart3D("", "", "访问量",
dataset, PlotOrientation.VERTICAL, false, false, false);
chart.setTitle(new TextTitle("访问量统计", new Font("宋体",
Font.ITALIC, 22)));
chart.setBackgroundPaint(Color.WHITE);
BarRenderer3D renderer = new BarRenderer3D();
renderer.setSeriesPaint(0, Color.ORANGE);
renderer.setWallPaint(new Color(199, 237, 204));
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelFont(new Font("宋体", Font.PLAIN, 12));
renderer.setItemLabelsVisible(true);
CategoryPlot plot = chart.getCategoryPlot();
plot.setBackgroundPaint(new Color(199, 237, 204));
CategoryAxis domainAxis = plot.getDomainAxis();
Font font = new Font("宋体", Font.PLAIN, 12);
domainAxis.setLabelFont(font);
domainAxis.setTickLabelFont(font);
domainAxis.setTickLabelPaint(Color.BLACK);
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
plot.setDomainAxis(domainAxis);
ValueAxis rangeAxis = plot.getRangeAxis();
rangeAxis.setLabelFont(font);
rangeAxis.setLabelPaint(Color.BLACK);
rangeAxis.setTickLabelFont(font);
rangeAxis.setUpperMargin(0.15);
rangeAxis.setLowerMargin(0.15);
plot.setRangeAxis(rangeAxis);
plot.setRenderer(renderer);
String filename = "";
try {
FreeChartUtil.setVisitImageBase(visitImageBase);
filename = FreeChartUtil.saveChartAsJPEG(chart, 700, 400, session);
} catch (IOException e) {
}
return "";
}

//饼图
public String imagePie(DefaultPieDataset defaultpiedataset, HttpSession session) {
JFreeChart chart = ChartFactory.createPieChart("访问量统计",
defaultpiedataset, false, true, false);
TextTitle txtTitle = chart.getTitle();
txtTitle.setFont(new Font("宋体", 0, 16));
PiePlot pieplot = (PiePlot) chart.getPlot();
pieplot.setLabelFont(new Font("宋体", 0, 12));
pieplot.setNoDataMessage("无数据");
pieplot.setCircular(true);
pieplot.setLabelGap(0.02D);
pieplot.setBackgroundPaint(new Color(199, 237, 204));
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("", new Font("宋体", 1, 12));
labelblock.setPadding(5D, 5D, 5D, 5D);
blockcontainer.add(labelblock, RectangleEdge.TOP);
SimpleDateFormat df = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
LabelBlock labelblock1 = new LabelBlock(df.format(new Date()));
labelblock1.setPadding(8D, 20D, 2D, 5D);
blockcontainer.add(labelblock1, RectangleEdge.BOTTOM);
BlockContainer blockcontainer1 = legendtitle.getItemContainer();
blockcontainer1.setPadding(2D, 10D, 5D, 2D);
blockcontainer.add(blockcontainer1);
legendtitle.setWrapper(blockcontainer);
legendtitle.setPosition(RectangleEdge.RIGHT);
legendtitle.setHorizontalAlignment(HorizontalAlignment.LEFT);
chart.addSubtitle(legendtitle);
chart.setBackgroundPaint(new Color(199, 237, 204));
String filename = "";
try {
FreeChartUtil.setVisitImageBase(visitImageBase);
filename = FreeChartUtil.saveChartAsJPEG(chart, 700, 400, session);
} catch (IOException e) {
}
return "";
}

所需包
<dependency>
  <groupId>jfree</groupId>
  <artifactId>jfreechart</artifactId>
  <version>1.0.13</version>
  </dependency>
<dependency>
  <groupId>jfree</groupId>
  <artifactId>jcommon</artifactId>
  <version>1.0.2</version>
  </dependency>
分享到:
评论

相关推荐

    jfreechart部署linux服务器生成图片乱码解决方案

    标题 "jfreechart部署在Linux服务器上生成图片乱码的解决方案" 涉及到的主要知识点是关于Java图形库JFreeChart在Linux环境中的使用,特别是解决中文字符乱码的问题。JFreeChart是一个广泛使用的开源Java库,它允许...

    jfreechart+cewolf的架包

    Cewolf是另一个基于Java的开源库,主要用于在Web环境中展示由JFreeChart生成的图表。它通过Servlet技术将JFreeChart的静态图表转化为动态的、交互式的Web图表。Cewolf提供了简单易用的API,使得开发者无需深入理解...

    jreechart生成图片路径

    描述中提到的博客链接虽然无法直接访问,但通常博主会分享具体的代码示例和实现过程,帮助读者理解如何使用JFreeChart生成图片并保存到文件系统。从标签“源码”和“工具”来看,这篇博客可能会提供一些实用的代码...

    jfreechart_test1

    首先,我们需要确保JFreeChart生成的图片能够正确保存到Tomcat的temp目录。这通常涉及到配置JFreeChart生成图表时的输出流。例如,我们可能需要使用`FileOutputStream`指定目标路径,并确保该路径对Tomcat有写入权限...

    JFreeChart使用总结

    1. **解压文件**:首先解压下载的jfreechart-1.0.12.zip文件至指定位置。 2. **确定核心文件**:主要关注的文件包括`jfreechart-1.0.12.jar`、`jcommon-1.0.15.jar`以及`gnujaxp.jar`。 - `jcommon-1.0.15.jar`包含...

    ssh-jfreechart

    生成的图表可以保存为图片文件,再通过SSH返回到本地,或者直接在服务器端渲染并在Web页面上展示。 为了实现这个功能,首先需要确保在本地和远程环境中都正确配置了SSH连接。然后,在Java代码中,使用SSH库建立连接...

    JfreeChart包下载

    对于Web应用,通常会通过Servlet生成图表并以图片的形式返回给客户端。同时,配合使用如`ServletOutputStream`和`Graphics2D`,可以在服务器端动态生成图表并直接输出到HTTP响应中。 总之,JFreeChart是Java开发中...

    jfreechart0.9.11.doc

    在服务器端,你可以使用 JFreeChart 创建所需的图表,然后将其转换为图片,最后将图片发送到客户端的浏览器显示。这个过程涉及的主要步骤包括: 1. 初始化 JFreeChart 对象,设置图表的类型、数据源和样式。 2. ...

    JFreeChart+Struts2实践例子

    这样,浏览器可以直接显示由服务器生成的图表,而无需先保存到服务器或客户端的硬盘上。 第四种方法是将图表作为附件提供下载。在Action中生成图表后,可以将其保存为文件,然后通过Struts2的FileResult或...

    JFreeChart使用大全

    用户可从JFree的官方网站免费下载JFreeChart的最新版本及其相关文档,虽然部分文档需要付费。以版本jfreechart-1.0.12.zip为例,该压缩包包含源码、示例程序jfreechart-1.0.12-demo.jar及必要的库文件。 #### ...

    JFreeChart学习资料.doc

    最后,这些图像数据可以在服务器端生成的 HTML 页面中作为内联图片展示。通过将 Base64 编码的图像数据嵌入到 `img` 标签的 `src` 属性中,用户就能在浏览器上看到图表。 总的来说,JFreeChart 是一个强大的 Java ...

    jfreeChart图解详细开发步骤

    无论是在客户端显示还是服务器端生成图片,`JFreeChart`都提供了丰富的API和灵活的配置选项,满足不同的应用场景需求。希望本篇文章能够帮助开发者更好地理解和掌握`JFreeChart`的使用方法,从而提高数据可视化的...

    jFreeChart学习总结

    二是直接在服务器端生成图表图片,并将其发送至浏览器。前者由于其较高的客户端要求及现代浏览器对Java Applet的支持减弱,已逐渐退出主流。因此,本篇文章将着重介绍如何使用JFreeChart这一强大的Java图表引擎来...

    JFreeChart在JavaWeb项目中的应用.pdf

    7. **生成图片文件(或二进制流)**:最终生成可视化的图表图片。 #### 四、JFreeChart在管理信息系统中的实现案例 以某煤矸石热电厂管理信息系统为例,该系统基于J2EE技术的B/S架构模式,采用Struts和Hibernate的...

    JFreeChart使用心得.pdf

    - **Web 开发**:将 lib 目录下的 `jcommon-1.0.0-rc1.jar` 和 `jfreechart-1.0.0-rc1.jar` 放置于 web 应用程序的 `WEB-INF/lib` 目录。 - **Java 开发**:将这两个 jar 包添加到项目的 classpath 环境变量中。 ...

    jfreechart

    在"MakeSiper"这个示例中,可能是利用JFreeChart生成某种特定类型的图表,如销售数据报告。通过解析项目中的代码,我们可以了解到如何将实际数据整合到JFreeChart中,以及如何定制图表的外观和交互功能。 总结,...

    jfreechart api文档

    JFreeChart 的 API 设计灵活,允许开发者创建动态、交互式的图表,并能轻松地集成到各种 Java 应用程序中,如 Web 应用、桌面应用以及服务器端应用。 在 JFreeChart-1.0.6 版本中,API 提供了大量类和接口,用于...

Global site tag (gtag.js) - Google Analytics