jfreechart常见图用法小结

1 柱型图
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

// 设置返回类型为图片
response.setContentType("image/png");
// 获取数据集对象
CategoryDataset dataset = createDataset();
// 创建图形对象
JFreeChart jfreechart = ChartFactory.createBarChart3D("08年图书销售量排名",
"按季度", "销量", dataset, PlotOrientation.VERTICAL, true, true,
false);
// 获得图表区域对象
CategoryPlot categoryPlot = (CategoryPlot) jfreechart.getPlot();
// 设置网格线可见
categoryPlot.setDomainGridlinesVisible(true);
// 获得x轴对象
CategoryAxis categoryAxis = categoryPlot.getDomainAxis();
// 设置x轴显示的分类名称的显示位置,如果不设置则水平显示
// 设置后,可以斜像显示,但分类角度,图表空间有限时,建议采用
categoryAxis.setCategoryLabelPositions(CategoryLabelPositions
.createUpRotationLabelPositions(0.39269908169872414D));
categoryAxis.setCategoryMargin(0.0D);
// 获显示图形对象
BarRenderer3D barRenderer3d = (BarRenderer3D) categoryPlot
.getRenderer();
// 设置不显示边框线
barRenderer3d.setDrawBarOutline(false);
// 将图表已数据流的方式返回给客户端
ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfreechart,
500, 270);
}

/**
* 返回数据集
*
* @return
*/
private static CategoryDataset createDataset() {
// 时间维度
String[] category1 = { "第一季度", "第二季度", "第三季度", "第四季度" };
// 分类维度
String[] category2 = { "JAVA", "C/C++", "PHP" };
DefaultCategoryDataset defaultdataset = new DefaultCategoryDataset();
for (int i = 0; i < category1.length; i++) {
String category = category1[i];
for (int j = 0; j < category2.length; j++) {
String cat = category2[j];
// 模拟添加数据
defaultdataset.addValue(DataUtils.getRandomData(), cat, category);
}
}
return defaultdataset;
}


2 饼图
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置返回类型为图片
response.setContentType("image/png");
// 获取数据集对象
PieDataset dataset = createPieDataset();
// 创建图形对象
JFreeChart jfreechart = ChartFactory.createPieChart3D("08年图书销量排行榜",
dataset, true, true, false);
// 获得图表区域对象
PiePlot pieplot = (PiePlot) jfreechart.getPlot();
// 设置图表区域的标签字体
pieplot.setLabelFont(new Font("宋体", 0, 12));
// 设置图表区域无数据时的默认显示文字
pieplot.setNoDataMessage("没有销售数据");
// 设置图表区域不是圆形,由于是3D的饼形图,建议设置为false
pieplot.setCircular(false);
// 设置图表区域文字与图表区域的间隔距离,0.02表示2%
pieplot.setLabelGap(0.02D);
// 将图表已数据流的方式返回给客户端
ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfreechart,
500, 270);
}

/**
* 返回数据集
*
* @return
*/
private static PieDataset createPieDataset() {
// 创建饼形图数据集对象
DefaultPieDataset defaultpiedataset = new DefaultPieDataset();
// 分别图形区域的说明和数据
defaultpiedataset.setValue("JAVA", DataUtils.getRandomData());
defaultpiedataset.setValue("C/C++", DataUtils.getRandomData());
defaultpiedataset.setValue("PHP", DataUtils.getRandomData());
defaultpiedataset.setValue("JavaScript", DataUtils.getRandomData());
defaultpiedataset.setValue("Ajax", DataUtils.getRandomData());
return defaultpiedataset;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值