使用 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.組裝柱狀圖所需要的數據集
1DefaultCategoryDataset dataset = new DefaultCategoryDataset();
2dataset.addValue(柱狀圖長度,"""柱體下方顯示名稱");

2.創建柱狀圖
1JFreeChart chart = ChartFactory.createBarChart3D("柱狀圖標題""橫軸標題""縱軸標題",dataset, PlotOrientation.VERTICAL, falsefalsefalse);

3.柱狀圖展現樣式處理:
 1CategoryPlot 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寫入臨時文件,用於頁面展現
1String filename = ServletUtilities.saveChartAsPNG(chart, 700400null, session);
2String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
II.頁面展現
1<img src="<%=graphURL %>" width="700" height="400" border ="0"  usemap = "#<%=filename%>">

若要簡單實現功能,可以只做三個操作:添加jar包,修改web.xml,編寫jsp文件(集合上述代碼)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章