使用 JFreeChart 来创建基于 web 的图表

使用 JFreeChart 来创建基于 web 的图表



0.环境配置,添加Jar包并修改web.xml
1 < servlet >
2          < servlet - name > DisplayChart </ servlet - name >
3          < servlet - class > org.jfree.chart.servlet.DisplayChart </ servlet - class >
4      </ servlet >
5
6      < servlet - mapping >
7          < servlet - name > DisplayChart </ servlet - name >
8          < url - pattern >/ DisplayChart </ url - pattern >
9      </ servlet - mapping >

1.组装柱状图所需要的数据集
1 DefaultCategoryDataset dataset  =   new  DefaultCategoryDataset();
2 dataset.addValue(柱状图长度, "" " 柱体下方显示名称 " );

2.创建柱状图
1 JFreeChart chart  =  ChartFactory.createBarChart3D( "柱状图标题 " " 横轴标题 " "纵轴标题 " ,dataset, PlotOrientation.VERTICAL,  false false false );

3.柱状图展现样式处理:
 1 CategoryPlot plot  =  chart.getCategoryPlot();
 2          // 设置网络背景颜色
 3         plot.setBackgroundPaint(java.awt.Color.WHITE);
 4          // 设置网格竖线颜色
 5         plot.setDomainGridlinePaint(java.awt.Color.pink);
 6          // 设置网格横线颜色
 7         plot.setRangeGridlinePaint(java.awt.Color.pink);
 8         BarRenderer3D renderer  =   new  BarRenderer3D();
 9         renderer.setBaseItemLabelGenerator( new  StandardCategoryItemLabelGenerator());
10         renderer.setBaseItemLabelsVisible( true );
11          // 设置柱宽度
12         renderer.setMaxBarWidth( 0.04 );
13          // 设置数值显示字体及大小
14         renderer.setItemLabelFont( new  java.awt.Font( " 黑体 " ,java.awt.Font.PLAIN, 10 ));
15          // 设置正值柱图数值的显示位置
16         renderer.setPositiveItemLabelPosition( new  ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.BASELINE_LEFT));
17          // 设置负值柱图数值的显示位置
18         renderer.setNegativeItemLabelPosition( new  ItemLabelPosition(ItemLabelAnchor.OUTSIDE7,TextAnchor.BASELINE_LEFT));
19         renderer.setItemLabelAnchorOffset(10D);
20         renderer.setItemLabelsVisible( true );
21          // 设置柱的间距
22         renderer.setItemMargin( 0 );
23         plot.setRenderer(renderer);
24         plot.setDomainAxisLocation(AxisLocation.TOP_OR_LEFT);
25         plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
26         org.jfree.chart.axis.CategoryAxis domainAxis  =  plot.getDomainAxis();
27          // domainAxis.setLowerMargin(0.1); // 设置距离图片左端距离此时为10%
28          // domainAxis.setUpperMargin(0.1); // 设置距离图片右端距离此时为百分之10
29         domainAxis.setCategoryLabelPositionOffset( 10 ); // 图表横轴与标签的距离(10像素)
30         domainAxis.setCategoryMargin( 0.2 ); // 横轴标签之间的距离20%
31          // domainAxis.setMaximumCategoryLabelLines(1);
32          // domainAxis.setMaximumCategoryLabelWidthRatio(0);

4.页面展现柱状图
I.JSP代码,将JFreeChart写入临时文件,用于页面展现
1 String filename  =  ServletUtilities.saveChartAsPNG(chart,  700 400 null , session);
2 String graphURL  =  request.getContextPath()  +   " /DisplayChart?filename= "   +  filename;
II.页面展现
1 < img src = " <%=graphURL %> "  width = " 700 "  height = " 400 "  border  = " 0 "   usemap  =   " #<%=filename%> " >

若要简单实现功能,可以只做三个操作:添加jar包,修改web.xml,编写jsp文件(集合上述代码)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值