使用 JFreeChart 來創建基於 web 的圖表
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.組裝柱狀圖所需要的數據集
2dataset.addValue(柱狀圖長度,"", "柱體下方顯示名稱");
2.創建柱狀圖
3.柱狀圖展現樣式處理:
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寫入臨時文件,用於頁面展現
2String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
若要簡單實現功能,可以只做三個操作:添加jar包,修改web.xml,編寫jsp文件(集合上述代碼)