其实挺简单的,注意我写的注释!
<%@ page contentType="text/htmlcharset=GB2312" %>
<%@ page import="org.jfree.chart.JFreeChart,org.jfree.chart.ChartUtilities,
org.jfree.chart.ChartFactory,
org.jfree.chart.plot.PlotOrientation,
org.jfree.data.category.DefaultCategoryDataset"%> //上面是需要添加的头文件
<html>
<body>
<%
String dataName[]=new String[]//显示数据系列
int dataValueCount[]=//数据系列对应的值
//以上两行可以从数据库里去取值,用循环写入数组
//------创建数据集,并设置值------
DefaultCategoryDataset categoryDataset = newDefaultCategoryDataset()//这个表示柱状图
for(int i=0i<dataName.lengthi++)
categoryDataset.addValue(dataValueCount[i],dataName[i],dataName[i])//循环写入数据集
String titleString="用户年龄阶段分布统计图"//图的标题
JFreeChart chart = ChartFactory.createBarChart(titleString,"用户年龄阶段","数量",
categoryDataset,PlotOrientation.VERTICAL,true,true,false)//chart就是欲创建的图表
ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,500,300)//这行的意思是输出成一个JPEG形式的文件显示
%>
</body>
</html>
其实后面还有很多参数的,比如颜色,柱子的标题等等,太多属性了,这个你查看一下JFREECHART的文档就行了,比如下面这样,很容易吧。
Font labelFont = new Font("SansSerif", Font.TRUETYPE_FONT, 12)
/*
* VALUE_TEXT_ANTIALIAS_OFF表示将文字的抗锯齿关闭,
* 使用的关闭抗锯齿后,字体尽量选择12到14号的宋体字,这样文字最清晰好看
*/
// chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF)
chart.setTextAntiAlias(false)
chart.setBackgroundPaint(Color.white)
// create plot
CategoryPlot plot = chart.getCategoryPlot()
// 设置横虚线可见
plot.setRangeGridlinesVisible(true)
// 虚线色彩
plot.setRangeGridlinePaint(Color.gray)
// 数据轴精度
NumberAxis vn = (NumberAxis) plot.getRangeAxis()
// vn.setAutoRangeIncludesZero(true)
DecimalFormat df = new DecimalFormat("#0.00")
vn.setNumberFormatOverride(df)// 数据轴数据标签的显示格式
// x轴设置
CategoryAxis domainAxis = plot.getDomainAxis()
domainAxis.setLabelFont(labelFont)// 轴标题
domainAxis.setTickLabelFont(labelFont)// 轴数值
属性比较多,不可能全贴出来,也不必全用,设置一些实用的属性即可。
<imgsrc="/sss/servlet/DisplayChart?filename=jfreechart-2885782382550559397.png"border=0/>欢迎分享,转载请注明来源:内存溢出
评论列表(0条)