`

复杂柱状图

阅读更多
<%@ 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 %>">
分享到:
评论

相关推荐

    多功能多种不同呈现方式数据统计图js特效插件下载。下载文件包含散点图(本都需要火狐浏览器演示)、复杂柱状图、柱状图、折线图等4种数据统计图。

    在这款插件中,复杂柱状图可能包含自定义的动画效果、动态数据更新或用户交互元素,例如点击事件触发的数据过滤。 接着是柱状图(Bar Chart),这是一种简单但有效的数据可视化形式,用于比较不同类别之间的值。与...

    柱状图_VB窗体显示柱状图_vb柱状图_柱状图mdb_柱状图_

    在VB(Visual Basic)开发环境中,创建一个窗体显示柱状图是一项常见的任务,尤其在数据分析和可视化领域。本文将详细讲解如何利用VB来实现这一功能,并结合数据库数据进行展示。 首先,我们要明白柱状图是一种图形...

    用Delphi实现柱状图_delphi_delphi柱状图_delphi柱行图_delphi图形pudn_

    6. **高级特性**:除了基本的柱状图,还可以实现更复杂的图表,如堆积柱状图、百分比柱状图或组合柱状图。这些可以通过添加多个Series并调整它们的Stacked属性、RelativeWidths或Overlay属性来实现。 7. **自定义...

    Qt 柱状图绘制

    Qt库是一种跨平台的C++图形用户界面应用程序开发框架,被广泛用于开发桌面和移动设备的应用。...如果你想要进一步提升,可以研究如何添加动画效果,或者将柱状图与其他Qt组件集成,以实现更复杂的数据分析和交互功能。

    Matplotlib包_画复杂分组柱状图

    Matplotlib包_画复杂分组柱状图,分3组画不同颜色柱状图,涉及技术:设置标签标题,图例、x,y轴的范围,设置标签、添加注释、设置紧凑布局等等

    Java生成柱状图

    Java生成柱状图是一种在Java应用程序中...在实际项目中,可以结合数据库查询、文件读写等操作,将动态数据导入柱状图,以满足更复杂的需求。同时,`jfreechart`的丰富定制功能也能帮助你打造符合业务需求的个性化图表。

    R语言ggplot2柱状图(条形图)、簇状、并列、百分比绘图方法总结

    簇状柱状图和并列柱状图是柱状图的两种变体,簇状柱状图将不同组的数据并排展示,以便进行组间对比;并列柱状图则是将不同组别的柱子并列显示,也方便对比不同组别之间的差异。百分比柱状图是一种特殊形式的柱状图,...

    PB自定义柱状图

    PB,全称PowerBuilder,是一种历史悠久的面向对象的编程环境,特别适合开发企业级数据库应用程序。在PB中,自定义柱状图是一种常见的数据可视...在实践中,不断学习和优化,你将能够构建出更加复杂和高效的柱状图应用。

    matlab 柱状图填充代码

    在MATLAB中,柱状图是一种常用的数据可视化工具,它能直观地展示各类别数据的大小。当你需要填充柱状图以增强视觉效果或者区分不同的数据组时,可以使用特定的代码来实现。这里我们将讨论如何在MATLAB中创建并填充...

    jfreechart 生成折线图,饼图,柱状图,堆栈柱状图

    JFreeChart是一个流行的Java库,用于生成各种类型的图表,包括折线图、饼图和柱状图,甚至堆栈柱状图。这个压缩包中的"CreateChartServiceImpl.java"文件很可能包含了一个实现这些功能的服务类。 首先,我们要理解...

    Bootstrap柱状图插件

    在Bootstrap中,柱状图是一种常用的数据可视化元素,它可以帮助用户直观地理解各种数据的对比和分布。Bootstrap柱状图插件通常基于JavaScript库,如jQuery或Chart.js,来增强其功能和交互性。 柱状图是数据可视化的...

    c#绘制3D柱状图

    在C#编程环境中,生成3D柱状图是一项常见的数据可视化任务,这有助于直观地展示多维度数据。本文将深入探讨如何使用C#实现这一功能,以及如何通过修改参数来调整柱状图的显示效果。 首先,C#中用于创建图形界面的...

    PB做的柱状图

    总的来说,PB的柱状图功能虽然在描述中提到可能不完整,但通过深入理解和利用PowerBuilder提供的工具和资源,可以对其进行扩展和优化,以满足更复杂的业务需求。对于初学者来说,熟悉这些文件格式和PowerBuilder的...

    echarts实现动态柱状图

    ECharts,作为一款由百度开发的开源JavaScript图表库,提供了丰富的图表类型和强大的交互功能,使得动态柱状图的实现变得简单高效。本篇文章将详细探讨如何使用ECharts来创建动态柱状图,满足大屏可视化对实时数据...

    poi导出多数据柱状图图表到ppt

    总的来说,使用 Apache POI,你可以根据实际需求创建复杂且动态的柱状图,这对于数据展示和报告生成非常有用。通过深入了解 POI 的 API 和提供的示例代码,你可以轻松地将数据转化为生动直观的可视化图表。

    Qt绘制柱状图,可以通用

    "Qt绘制柱状图,可以通用"这个程序包就是针对这一需求而设计的,它使用了流行的跨平台开发框架Qt以及Qwt库,实现了动态、交互式的柱状图展示功能。以下是对这个程序包所涉及知识点的详细解释: 1. **Qt框架**:Qt是...

    Highcharts柱状图显示

    通过深入理解和实践Highcharts的这些知识点,你可以创建出既美观又实用的柱状图,有效地传达复杂的数据信息。在解压后的"HighCharts"文件中,可能包含了各种示例代码和资源,供学习者参考和实践。

    基于Matlab实现多组并列柱状图的填充画法(源码+指导视频).rar

    Matlab是一款强大的数学计算和数据可视化软件,它提供了丰富的图形库,能够帮助用户绘制各种复杂的图表,包括柱状图。在这个教程中,我们将深入学习如何创建并填充多组并列柱状图,以便于比较不同类别的数据。 首先...

    柱状图的Php实现多系列柱状图

    柱状图作为一种常见的数据图表类型,常用于比较不同类别的数据量。在这个场景下,我们将讨论如何使用PHP来实现多系列柱状图,并结合MySQL数据库进行动态展示。 首先,让我们了解柱状图的基本概念。柱状图是一种用...

Global site tag (gtag.js) - Google Analytics