接上回JFREECHART

本文介绍如何使用Java和JFreeChart库创建带有3D效果的柱状图,并展示了一个具体的示例,包括如何设置标题、字体样式以及如何保存图表为PNG格式。

上面的这个柱状图比较简单,稍显单调,在有些情况下,我们需要用不同颜色来表示不同的种类,或者在种类上标上具体数值,亦或需要加上3D水晶效果。下面让我们来做更深一步的探讨。接下来让我们看一个用不同颜色来表示不通种类的例子。在WebRoot的bar目录下新建sample2.jsp页面,将其代码修改如下:

<%@ page contentType="text/html;charset=GBK"%>

<%@ page import="org.jfree.chart.ChartFactory,
org.jfree.chart.JFreeChart,
org.jfree.chart.plot.PlotOrientation,
org.jfree.chart.plot.CategoryPlot,
org.jfree.chart.axis.*,
org.jfree.chart.servlet.ServletUtilities,
java.awt.*,
org.jfree.chart.title.TextTitle,
org.jfree.data.category.CategoryDataset,
org.jfree.data.general.DatasetUtilities"%>

<%
double[][] data = new double[][] {{1310}, {720}, {1130}, {440},{563},{888}};
String[] rowKeys = { "pig", "beef", "chicken", "fish", "apple", "orange"};
String[] columnKeys = {""};
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
JFreeChart chart = ChartFactory.createBarChart3D("广州肉类销量统计图",
"type",
"amount",
dataset,
PlotOrientation.VERTICAL,
true,
false,
false);
CategoryPlot plot=chart.getCategoryPlot();
CategoryAxis domainAxis=plot.getDomainAxis();
domainAxis.setLabelFont(new Font("黑体",Font.BOLD,14));
domainAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12));
ValueAxis rangeAxis=plot.getRangeAxis();
rangeAxis.setLabelFont(new Font("黑体",Font.BOLD,15));
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("黑体",Font.BOLD,15));
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 %>">

该页面的运行效果如下图所示:

对比该例与前例,我可看出createBarChart3D的倒数第三个参数修改成了true,该参数可用来显示下方的方框 。

createBarChart3D(

       param1 ,                   //图表标题

       param2 ,                   //数据

       true ,                        //是否显示图例

       true ,                        //是否显示工具提示

       true                            //是否生成url

)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值