⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bardemo2.jsp

📁 自己写的jfreechart demo
💻 JSP
字号:
<%@ page contentType="text/html;charset=GBK"%>

<%@ page import="java.awt.Font"%>
<%@ page import="java.awt.Color"%>

<%@ page import="org.jfree.chart.ChartFactory"%>
<%@ page import="org.jfree.chart.JFreeChart"%>
<%@ page import="org.jfree.chart.plot.PlotOrientation"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="org.jfree.data.category.CategoryDataset"%>
<%@ page import="org.jfree.data.general.DatasetUtilities"%>

<%@ page import="org.jfree.chart.title.*" %>
<%@ page import="org.jfree.chart.plot.*" %>
<%@ page import="org.jfree.chart.axis.*" %>
<%@ page import="org.jfree.chart.labels.*" %>
<%@ page import="org.jfree.chart.renderer.category.*" %>
<%@ page import="org.jfree.ui.*" %>


<%
double[][] data = new double[][] {{1310}, {720}, {1130}, {440}};
String[] rowKeys = {"猪肉", "牛肉","鸡肉", "鱼肉"};
String[] columnKeys = {""};
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
JFreeChart chart = ChartFactory.createBarChart3D("广州肉类销量统计图","肉类","销量",dataset,PlotOrientation.VERTICAL,
true,
false,
false);

Font font = new Font("SimSun", 10, 20); 
TextTitle textTitle = chart.getTitle();
textTitle.setFont(font);
textTitle.setPaint(Color.BLUE);

//绘图对象
CategoryPlot plot = chart.getCategoryPlot();

//图X轴Domain(CategoryAxis)
CategoryAxis domainAxis = plot.getDomainAxis();

domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 4.0));
//X轴上的文字
domainAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 12));
domainAxis.setTickLabelPaint(Color.BLUE);

//X轴的标题文字
domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
domainAxis.setLabelPaint(Color.BLUE);
plot.setDomainAxis(domainAxis);

//图Y轴Range(ValueAxis)
ValueAxis valueAxis =plot.getRangeAxis();

//Y轴上的文字
valueAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 12));
valueAxis.setTickLabelPaint(Color.BLUE);

//Y轴的标题文字
valueAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
valueAxis.setLabelPaint(Color.BLUE);

//联想细节
LegendTitle legend = chart.getLegend();
legend.setItemFont(new Font("宋体", Font.PLAIN, 15));
legend.setItemPaint(Color.BLUE);

//显示每个柱的数值,并修改该数值的字体属性
BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelsVisible(true);
//默认的数字显示在柱子中,通过如下两句可调整数字的显示
//注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
renderer.setItemLabelAnchorOffset(10D);
//设置每个地区所包含的平行柱的之间距离
renderer.setItemMargin(0.3);
plot.setRenderer(renderer);



String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;

%>
<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -