<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="org.jfree.chart.ChartFactory, org.jfree.chart.plot.CategoryPlot,java.awt.Font,org.jfree.chart.plot.PlotOrientation, org.jfree.chart.title.TextTitle,org.jfree.chart.axis.CategoryAxis, org.jfree.chart.axis.NumberAxis, org.jfree.chart.JFreeChart, org.jfree.chart.plot.PlotOrientation, org.jfree.chart.JFreeChart, org.jfree.chart.plot.PlotOrientation, org.jfree.chart.servlet.ServletUtilities, org.jfree.data.category.CategoryDataset,
org.jfree.data.general.DatasetUtilities,
org.jfree.chart.plot.*,
org.jfree.chart.labels.*,
org.jfree.chart.renderer.category.BarRenderer3D,
java.awt.*,
org.jfree.ui.*, org.jfree.chart.axis.AxisLocation"%>
<%
double[][] data = new double[][] {{1310, 1220, 1110, 1000},
{720, 700, 680, 640},
{1130, 1020, 980, 800},
{440, 400, 360, 300}};
String[] rowKeys = {"猪肉", "牛肉","鸡肉", "鱼肉"};
String[] columnKeys = {"广州", "深圳", "东莞", "佛山"};
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
JFreeChart chart = ChartFactory.createBarChart3D("肉类销量统计图",
"肉类",
"销量",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false);
CategoryPlot plot = chart.getCategoryPlot();
//设置网格背景颜色
plot.setBackgroundPaint(Color.white);
//设置网格竖线颜色
plot.setDomainGridlinePaint(Color.pink);
//设置网格横线颜色
plot.setRangeGridlinePaint(Color.pink);
//显示每个柱的数值,并修改该数值的字体属性
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);
//设置地区、销量的显示位置
//将下方的“肉类”放到上方
plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
//将默认放在左边的“销量”放到右方
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
//图表标题以及副标题乱码
Font font = new Font("宋体", Font.BOLD, 16);
TextTitle title = new TextTitle("肉类销量统计图", font);
//副标题
TextTitle subtitle = new TextTitle("副标题", new Font("黑体", Font.BOLD, 12));
chart.addSubtitle(subtitle);
chart.setTitle(title); //标题
//CategoryPlot plot = chart.getCategoryPlot();
NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
CategoryAxis domainAxis = plot.getDomainAxis();
//X轴乱码
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12));
//Y轴乱码
numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12));
//图表底部乱码
chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));
String filename = ServletUtilities.saveChartAsPNG(chart, 700, 400, null, session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>"width=700 height=400 border=0 usemap="#<%= filename %>">
分享到:
相关推荐
在这款插件中,复杂柱状图可能包含自定义的动画效果、动态数据更新或用户交互元素,例如点击事件触发的数据过滤。 接着是柱状图(Bar Chart),这是一种简单但有效的数据可视化形式,用于比较不同类别之间的值。与...
在VB(Visual Basic)开发环境中,创建一个窗体显示柱状图是一项常见的任务,尤其在数据分析和可视化领域。本文将详细讲解如何利用VB来实现这一功能,并结合数据库数据进行展示。 首先,我们要明白柱状图是一种图形...
6. **高级特性**:除了基本的柱状图,还可以实现更复杂的图表,如堆积柱状图、百分比柱状图或组合柱状图。这些可以通过添加多个Series并调整它们的Stacked属性、RelativeWidths或Overlay属性来实现。 7. **自定义...
Qt库是一种跨平台的C++图形用户界面应用程序开发框架,被广泛用于开发桌面和移动设备的应用。...如果你想要进一步提升,可以研究如何添加动画效果,或者将柱状图与其他Qt组件集成,以实现更复杂的数据分析和交互功能。
Matplotlib包_画复杂分组柱状图,分3组画不同颜色柱状图,涉及技术:设置标签标题,图例、x,y轴的范围,设置标签、添加注释、设置紧凑布局等等
Java生成柱状图是一种在Java应用程序中...在实际项目中,可以结合数据库查询、文件读写等操作,将动态数据导入柱状图,以满足更复杂的需求。同时,`jfreechart`的丰富定制功能也能帮助你打造符合业务需求的个性化图表。
簇状柱状图和并列柱状图是柱状图的两种变体,簇状柱状图将不同组的数据并排展示,以便进行组间对比;并列柱状图则是将不同组别的柱子并列显示,也方便对比不同组别之间的差异。百分比柱状图是一种特殊形式的柱状图,...
PB,全称PowerBuilder,是一种历史悠久的面向对象的编程环境,特别适合开发企业级数据库应用程序。在PB中,自定义柱状图是一种常见的数据可视...在实践中,不断学习和优化,你将能够构建出更加复杂和高效的柱状图应用。
在MATLAB中,柱状图是一种常用的数据可视化工具,它能直观地展示各类别数据的大小。当你需要填充柱状图以增强视觉效果或者区分不同的数据组时,可以使用特定的代码来实现。这里我们将讨论如何在MATLAB中创建并填充...
JFreeChart是一个流行的Java库,用于生成各种类型的图表,包括折线图、饼图和柱状图,甚至堆栈柱状图。这个压缩包中的"CreateChartServiceImpl.java"文件很可能包含了一个实现这些功能的服务类。 首先,我们要理解...
在Bootstrap中,柱状图是一种常用的数据可视化元素,它可以帮助用户直观地理解各种数据的对比和分布。Bootstrap柱状图插件通常基于JavaScript库,如jQuery或Chart.js,来增强其功能和交互性。 柱状图是数据可视化的...
在C#编程环境中,生成3D柱状图是一项常见的数据可视化任务,这有助于直观地展示多维度数据。本文将深入探讨如何使用C#实现这一功能,以及如何通过修改参数来调整柱状图的显示效果。 首先,C#中用于创建图形界面的...
总的来说,PB的柱状图功能虽然在描述中提到可能不完整,但通过深入理解和利用PowerBuilder提供的工具和资源,可以对其进行扩展和优化,以满足更复杂的业务需求。对于初学者来说,熟悉这些文件格式和PowerBuilder的...
ECharts,作为一款由百度开发的开源JavaScript图表库,提供了丰富的图表类型和强大的交互功能,使得动态柱状图的实现变得简单高效。本篇文章将详细探讨如何使用ECharts来创建动态柱状图,满足大屏可视化对实时数据...
总的来说,使用 Apache POI,你可以根据实际需求创建复杂且动态的柱状图,这对于数据展示和报告生成非常有用。通过深入了解 POI 的 API 和提供的示例代码,你可以轻松地将数据转化为生动直观的可视化图表。
"Qt绘制柱状图,可以通用"这个程序包就是针对这一需求而设计的,它使用了流行的跨平台开发框架Qt以及Qwt库,实现了动态、交互式的柱状图展示功能。以下是对这个程序包所涉及知识点的详细解释: 1. **Qt框架**:Qt是...
通过深入理解和实践Highcharts的这些知识点,你可以创建出既美观又实用的柱状图,有效地传达复杂的数据信息。在解压后的"HighCharts"文件中,可能包含了各种示例代码和资源,供学习者参考和实践。
Matlab是一款强大的数学计算和数据可视化软件,它提供了丰富的图形库,能够帮助用户绘制各种复杂的图表,包括柱状图。在这个教程中,我们将深入学习如何创建并填充多组并列柱状图,以便于比较不同类别的数据。 首先...
柱状图作为一种常见的数据图表类型,常用于比较不同类别的数据量。在这个场景下,我们将讨论如何使用PHP来实现多系列柱状图,并结合MySQL数据库进行动态展示。 首先,让我们了解柱状图的基本概念。柱状图是一种用...