`
zhaoyl
  • 浏览: 217520 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在普通柱图上实现"数据下探"

阅读更多


/**

**QQ:252574345

**MSN:lele_love_lomboz@hotmail.com

*/

 (如遇到不能生成链接,或在对比图中设置热点链接不成功的问题,请参照另外2篇文章)

1.水果销售量

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.awt.Color,
                org.jfree.chart.ChartFactory,
                org.jfree.chart.JFreeChart,
                org.jfree.chart.plot.PlotOrientation,
                org.jfree.chart.servlet.ServletUtilities,
                org.jfree.data.category.CategoryDataset,
                org.jfree.data.general.*,
                org.jfree.chart.plot.CategoryPlot,
                org.jfree.chart.axis.CategoryAxis,
                org.jfree.chart.axis.ValueAxis,
                org.jfree.chart.renderer.category.BarRenderer3D,
                org.jfree.chart.urls.StandardCategoryURLGenerator,
                org.jfree.chart.*,
                org.jfree.chart.entity.*,
                org.jfree.chart.labels.*"%>
<%
java.io.PrintWriter pw=new java.io.PrintWriter(out);
double[][] data = new double[][] {{672}, {325}, {332}, {440}, {550}, {330}};
String[] rowKeys = {"苹果", "梨子", "葡萄", "桔子", "西瓜", "香蕉"};
String[] columnKeys = {""};
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
        rowKeys,
        columnKeys,
        data);


JFreeChart chart = ChartFactory.createBarChart3D("水果销量图统计",
                  "水果",
                  "销量",
                  dataset,
                  PlotOrientation.VERTICAL,
                  true,
                  false,
                  false);

chart.setBackgroundPaint(Color.WHITE);
CategoryPlot plot = chart.getCategoryPlot();

CategoryAxis domainAxis = plot.getDomainAxis();
plot.setDomainAxis(domainAxis);

ValueAxis rangeAxis = plot.getRangeAxis();
//设置最高的一个 Item 与图片顶端的距离
rangeAxis.setUpperMargin(0.15);
//设置最低的一个 Item 与图片底端的距离
rangeAxis.setLowerMargin(0.15);

plot.setRangeAxis(rangeAxis);

BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
//设置 Wall 的颜色
renderer.setWallPaint(Color.gray);
//设置每种水果代表的柱的颜色
renderer.setSeriesPaint(0, new Color(0, 0, 255));
renderer.setSeriesPaint(1, new Color(200, 200, 255));
renderer.setSeriesPaint(2, Color.GREEN);
renderer.setSeriesPaint(3, Color.MAGENTA);
renderer.setSeriesPaint(4, Color.GRAY);
renderer.setSeriesPaint(5, Color.CYAN);

//设置平行柱的之间距离
renderer.setItemMargin(0.3);

//显示每个柱的数值
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelsVisible(true);

renderer.setBaseItemLabelsVisible(true);
renderer.setBaseItemURLGenerator(new StandardCategoryURLGenerator(
        "detail.jsp", "fruit", ""));
plot.setRenderer(renderer);

//设置柱的透明度
plot.setForegroundAlpha(0.5f);
//设置地区、销量的显示位置
//plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
ChartRenderingInfo info = new ChartRenderingInfo(new
                    StandardEntityCollection());

String filename = ServletUtilities.saveChartAsPNG(chart, 800, 600, info, session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;

ChartUtilities.writeImageMap(pw, filename, info, true);
              pw.flush();

%>

<table width="100%">
    <tr>
        <td align="center">
            <img src="<%= graphURL %>" width=800 height=600 border=0 usemap="#<%= filename %>" alt="">
        </td>
    </tr>
</table>

 

2.水果销售量详细信息

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.awt.Color,
                org.jfree.chart.ChartFactory,
                org.jfree.chart.JFreeChart,
                org.jfree.chart.plot.PlotOrientation,
                org.jfree.chart.servlet.ServletUtilities,
                org.jfree.data.category.CategoryDataset,
                org.jfree.data.general.*,
                org.jfree.chart.plot.CategoryPlot,
                org.jfree.chart.axis.CategoryAxis,
                org.jfree.chart.axis.ValueAxis,
                org.jfree.chart.renderer.category.BarRenderer3D,
                org.jfree.chart.labels.*"%>
<%
String fruit = new String(request.getParameter("fruit").getBytes("ISO8859_1"), "utf-8");
int count = 0;
if ("苹果".equals(fruit)) {
    count = 100;
} else if ("梨子".equals(fruit)) {
    count = 26;
} else if ("葡萄".equals(fruit)) {
    count = -20;
} else if ("桔子".equals(fruit)) {
    count = -40;
} else if ("西瓜".equals(fruit)) {
    count = 80;
}
//String address = new String(request.getParameter("address").getBytes("ISO8859_1"), "utf-8");

double[][] data = new double[][] {{672 + count}, {325 + count}, {332 + count}, {440 + count},
                                  {550 + count}, {330 + count}, {435 + count}, {553 + count},
                                  {335 + count}, {443 + count}, {378 + count}, {733 + count}};
String[] rowKeys = {"一月份", "二月份", "三月份", "四月份",
                    "五月份", "六月份", "七月份", "八月份",
                    "九月份", "十月份", "十一月份", "十二月份"};
String[] columnKeys = {""};
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
        rowKeys,
        columnKeys,
        data);

JFreeChart chart = ChartFactory.createBarChart3D("2007年度" + fruit + "销量图",
                  "月份",
                  "销量",
                  dataset,
                  PlotOrientation.VERTICAL,
                  true,
                  false,
                  false);

chart.setBackgroundPaint(Color.WHITE);
CategoryPlot plot = chart.getCategoryPlot();

CategoryAxis domainAxis = plot.getDomainAxis();
plot.setDomainAxis(domainAxis);

ValueAxis rangeAxis = plot.getRangeAxis();
//设置最高的一个 Item 与图片顶端的距离
rangeAxis.setUpperMargin(0.15);
//设置最低的一个 Item 与图片底端的距离
rangeAxis.setLowerMargin(0.15);

plot.setRangeAxis(rangeAxis);

BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
//设置 Wall 的颜色
renderer.setWallPaint(Color.gray);
//设置每种水果代表的柱的颜色
renderer.setSeriesPaint(0, new Color(0, 0, 255));
renderer.setSeriesPaint(1, new Color(200, 200, 255));
renderer.setSeriesPaint(2, Color.GREEN);
renderer.setSeriesPaint(3, Color.MAGENTA);
renderer.setSeriesPaint(4, Color.GRAY);
renderer.setSeriesPaint(5, Color.CYAN);

//设置平行柱的之间距离
renderer.setItemMargin(0.3);

//显示每个柱的数值
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelsVisible(true);

plot.setRenderer(renderer);
//设置柱的透明度
plot.setForegroundAlpha(0.5f);

String filename = ServletUtilities.saveChartAsPNG(chart, 800, 550, null, session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;

%>

<table width="100%">
    <tr>
        <td align="center">
            <a href="index.jsp">返回</a>
            <br>
            <img src="<%= graphURL %>" width=800 height=550 border=0 usemap="#<%= filename %>" alt="">
        </td>
    </tr>
</table>

分享到:
评论

相关推荐

    jfreechart数据下探的小例子

    在这个小例子中,已经实现了柱状图的数据下探功能,但圆形图的数据下探还未完成。 **柱状图的实现** 柱状图(Bar Chart)是统计图表中常见的类型,常用于比较不同类别的数据量。在 JFreeChart 中创建柱状图,首先...

    echarts + 省市县点击下探+全国json数据

    本主题聚焦于如何使用Echarts库实现一个具有省、市、县三级点击下探功能的地图展示,以及如何处理全国范围内的JSON数据。Echarts是一个基于JavaScript的数据可视化库,广泛应用于网页图表的绘制,提供了丰富的图表...

    读取探空数据

    在IT行业中,探空数据是气象学和大气科学研究中至关重要的一部分。探空数据通常通过气象气球、雷达或其他遥感设备收集,记录大气层不同高度的温度、湿度、风速、风向等关键气象参数。这些数据往往以非标准格式存储,...

    化探数据制图

    这一步骤需要将各个元素的异常图层合并,然后在相应比例尺的地质图上进行套合,添加图例,最终完成全图的综合功能,输出化探综合异常图。 总的来说,化探数据制图通过MapGIS软件实现了对地球化学勘查数据的有效管理...

    MAPGIS6.7环境下化探数据预处理方法

    在MAPGIS6.7环境下进行化探数据预处理涉及一系列详细的操作流程和方法,文章以苏丹红海州捷拜拉吐哈度57区金矿野外采集的化探数据为例,深入探讨了在该软件环境下如何处理这些数据,以及处理后数据的对比分析,目的...

    下载怀俄明大学探空站数据

    在下载此类数据时,首先要访问怀俄明大学的官方数据服务网站,找到相应的探空站数据接口或者数据下载页面。用户可能需要注册账号以获得更全面的访问权限。数据通常以CSV或GRIB等格式提供,这些格式便于数据处理和...

    意大利探地雷达原始数据

    在这个压缩包中包含的“意大利雷达数据”文件,很可能是多个GPR扫描的数据文件,可能以RAW格式、BIL、GRD或其它专业软件支持的格式存在。这些文件通常包含了每个探测点的振幅、相位和时间信息,需要使用专门的GPR...

    应用MATLAB实现探地雷达数据小波变换处理

    ### 应用MATLAB实现探地雷达数据小波变换处理 #### 小波变换与探地雷达技术结合的背景 探地雷达(Ground Penetrating Radar, GPR)作为一种先进的探测技术,在工程地质勘探、水文调查、考古、隧道检测、公路检测、...

    GPR.zip_GPR_GPR数据_探地雷达_探地雷达数据_雷达处理软件

    《探地雷达技术及其数据处理软件GPRConsole详解》 探地雷达(Ground Penetrating Radar,简称GPR)是一种广泛应用的无损检测技术,它通过发射高频电磁波到地下,然后接收反射回来的信号来探测地下的结构、物体或...

    化探数据处理

    “化探数据处理”是指在地质勘查领域中,对通过化学勘探获得的数据进行整理、分析和解释的过程。这一过程对于揭示地下资源分布情况、指导后续勘查工作具有重要意义。 #### 二、软件与工具需求 1. **Microsoft ...

    探空数据站点下载.py

    探空数据站点下载.py

    探地雷达数据处理

    综上所述,这个仿制的GSSI探地雷达数据处理程序涉及到多个领域的专业知识,包括地球物理学、信号处理、计算机科学和软件工程。通过深入理解和应用这些知识,我们可以创建一个功能完备且适应实际需求的探地雷达数据...

    dzt.zip_DZT是什么格式_dzt数据读取_探地雷达_探地雷达 dzt_读取dzt文件

    在探地雷达的数据处理过程中,DZT文件格式扮演了重要的角色。本文将详细解析DZT格式,以及如何进行DZT数据的读取和写入。 首先,DZT是探地雷达数据的一种特定存储格式,主要用于保存由探地雷达设备采集到的地下反射...

    逆时偏移在探地雷达数据处理中的应用.pdf

    逆时偏移技术是一种高级地球物理数据处理方法,尤其在探地雷达(GPR)数据处理中具有重要应用。探地雷达技术是一种利用电磁波对地下介质进行探测的技术,因其无损性、高分辨率、操作简便等特点,在工程勘察、考古...

    GPR探地雷达数据显示和处理

    在VC++环境下,这需要掌握数据结构、图形界面设计以及数据可视化技术。例如,使用OpenGL或DirectX库可以创建实时的二维或三维图像,直观展示地下雷达回波的分布情况。 然后,数据处理环节是GPR应用的核心。去直达波...

    探地雷达数据处理程序

    在本项目中,我们开发了一款探地雷达数据处理程序,该程序旨在优化和解析从探地雷达设备收集的数据,从而提供更准确的地表下结构信息。 在数据处理程序的设计与实现过程中,以下几个关键知识点至关重要: 1. **道...

    化探数据处理提取多层次信息的数据挖掘方法.pdf

    在化探数据处理中,常用的方法包括绘制地球化学元素分布图、频率分布直方图、箱形图等。这些可视化工具有助于发现数据中的异常区域或模式,为进一步的数据分析提供线索。 5. 数据挖掘:数据挖掘是利用算法从大量...

    利用MATLAB自动批量下载探空数据

    该代码为matlab自动批量下载怀俄明大学探空数据。下载单位为月。其中主要使用webread函数,该函数发布于matlab2014b版本,使用此代码需要高于此版本。

    MATGPR_R3探地雷达数据处理MATLAB程序.zip

    2. 对齐校准:由于探头移动可能导致数据偏移,MATLAB通过平移和缩放操作实现数据对齐,确保不同位置的雷达图像可以准确比较。 3. 动态范围调整:通过自动增益控制(AGC)和对数放大等方法,调整数据动态范围,增强...

    RAMAC_GPR探地雷达数据处理软件的自主开发与应用.pdf

    在数据的初步处理中,我们使用Visual C++语言编写了数据读取、数据处理和数据显示模块,以实现对探地雷达数据的初步处理和显示。 RAMAC_GPR探地雷达数据处理软件的应用是指使用本软件对探地雷达数据进行处理和分析...

Global site tag (gtag.js) - Google Analytics