`
阅读更多
可适当参考  系列1 饼图 http://www.blogjava.net/JAVA-HE/archive/2007/06/29/126957.html

  1/**//*************更多技术文章请访问:http://www.blogjava.net/JAVA-HE****************
  2 *
  3 *    文件名:bar.js V 1.01
  4 *    
  5 *    作  者:何昌敏
  6 *
  7 *    时  间:2007-6
  8 *
  9 *    描  述:绘制柱图
 10 *
 11 *    备  注:
 12 *                1.修改数据==0,出现的图形走样bug。(设置了2像素作为0的显示)
 13 *                2.startx 实现水平移动。
 14 *                3.实现自动比例。
 15 *                4.实现实现柱的宽度自适应,分布自适应。
 16 *                5.实现比较严格的参数判断。
 17 *                6.实现了图像清除。
 18 *                7.是否画上箭头。 在画箭头的时候可设定箭头大小。
 19 *
 20 *    说  明:
 21 *                对于其位置的调整并没有做更多扩展,能自适应大小。
 22 *                至于位置,我想直接控制div的位置比较方便。
 23 *                当然还有背景的绘制,也认为修改DIV的背景,比在这里画要方便点。
 24 
 25 *    感  谢:Walter Zorn提供了API ——wz_jsgraphics.js v. 3.01。
 26 *                
 27*************更多技术文章请访问:http://www.blogjava.net/JAVA-HE****************/

 28
 29function Bar(_div)
 30{
 31    var barjg = new jsGraphics(_div);
 32    var colors = new Array();
 33    colors[0= "#0066FF";
 34    colors[1= "#FF6633";
 35    colors[2= "#9900FF";
 36    colors[3= "#FF0066";
 37    colors[4= "#066600";
 38    colors[5= "#006633";
 39    colors[6= "#33FFFF";
 40    colors[7= "#000000";
 41    colors[8= "#FFFF00";
 42    colors[9= "#000033";
 43    colors[10= "#CCFFFF";
 44    colors[11= "#666666";
 45    
 46    this.start_x = 40;
 47    this.start_y = 0;
 48    this.width=200;
 49    this.height=120;
 50    this.line_num=6;
 51    this.y_start_x = 0;
 52    this.scale=12;    
 53    this.IsDrawArrow = true;
 54    this.ArrowLength =6;
 55    
 56    this.drawBar = function (_y,_x)
 57    {
 58        var y_len = _y.length;
 59        var x_len = _x.length;
 60        if(y_len != x_len)
 61        {
 62            alert("X and Y length of inconsistencies, errors parameters.");
 63            return;
 64        }

 65        barjg.setColor("#000000");
 66        barjg.drawLine(this.start_x,this.height+this.start_y,this.width+this.start_x,this.height+this.start_y);//x line
 67        barjg.drawLine(this.start_x,this.start_y,this.start_x,this.height+this.start_y);// y line
 68      if(this.IsDrawArrow)
 69      {
 70          barjg.drawLine(this.width+this.start_x,this.height+this.start_y+this.ArrowLength,this.width+this.start_x+this.ArrowLength,this.height+this.start_y);
 71          barjg.drawLine(this.width+this.start_x,this.height+this.start_y-this.ArrowLength,this.width+this.start_x+this.ArrowLength,this.height+this.start_y);
 72            barjg.drawLine(this.width+this.start_x,this.height+this.start_y,this.width+this.start_x+this.ArrowLength,this.height+this.start_y);
 73            barjg.drawLine(this.start_x,this.start_y-this.ArrowLength,this.start_x-this.ArrowLength,this.start_y+this.ArrowLength);
 74            barjg.drawLine(this.start_x,this.start_y-this.ArrowLength,this.start_x+this.ArrowLength,this.start_y+this.ArrowLength);
 75            barjg.drawLine(this.start_x,this.start_y,this.start_x,this.start_y-this.ArrowLength);
 76      }

 77      var max_H=0;
 78    for(i=0;i<y_len;i++)
 79    {
 80        if(isNaN(_y[i]))
 81        {
 82            alert("y is not a number!");
 83                return;
 84        }

 85            if(max_H<_y[i])
 86            {
 87              max_H=_y[i];
 88            }

 89    }

 90        this.scale=Math.round(max_H/this.height);
 91        //每像素代表数值10
 92        if(    this.scale<10)
 93        {
 94            scale=10;
 95        }

 96        for(i=0;i<this.line_num;i++)
 97        {
 98            var y=this.height*i/this.line_num;        
 99            barjg.setStroke(Stroke.DOTTED);    
100            barjg.drawLine(this.start_x,y+this.start_y,this.width+this.start_x,y+this.start_y);    
101            barjg.drawString(""+Math.round((this.height-y)*this.scale),this.y_start_x,y+this.start_y);
102        }

103        barjg.setStroke(2);
104        for(i=0;i<x_len;i++)
105        {
106            var barwidth=(this.width-this.start_x)/(x_len*2);
107            var startX=this.start_x+(i+1)*this.width/x_len-barwidth;
108            barjg.setColor(colors[i]);
109            //从左上到右下
110            barjg.fillRect( startX,this.height-Math.max(_y[i]/this.scale,2)+this.start_y,barwidth,Math.max(_y[i]/this.scale,2));
111            barjg.drawString(_x[i],startX,this.height+this.start_y);
112        }

113        barjg.paint();
114   }
;
115        this.clearBar =function()
116    {
117        barjg.clear();
118    }
;
119    }

上面js文件保存为:bar.js,使用下面DEMO 文件的的时候,一样需要引入wz_jsgraphics.js。可以在http://www.blogjava.net/Files/JAVA-HE/pieDemo.rar 下载。

 1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2<html xmlns="http://www.w3.org/1999/xhtml">
 3<head>
 4<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5<title>TEST</title>
 6<script type="text/javascript" src="wz_jsgraphics.js"></script>
 7<script type="text/javascript" src="bar.js"></script>
 8</head>
 9<body>
10<p>1.柱图</p>
11<div id="BarDiv" style="position:relative;height:200px;width:300px;"></div>
12
13<script language="javascript">
14    var y= new Array ();
15     y[0= 11112;
16     y[1= 16000;
17     y[2= 20000;
18
19    var x = new Array ();
20    x[0= "a";
21    x[1= "b";
22    x[2= "c";    
23    var mybar = new<span sty
分享到:
评论

相关推荐

    java ssh2——统计图

    在这个"java ssh2——统计图"的项目中,我们聚焦于如何在网页中利用SSH2框架来创建动态的、交互式的统计图形。 Spring框架作为基础,提供依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...

    K线图画图最强大的javascript脚本

    5. `graphics`:这个目录可能存储了与图表相关的图像资源,如图标、背景图片等,这些图片可能在K线图的样式设计中起到关键作用。 通过学习这个脚本,开发者不仅可以了解K线图的基本概念,还能掌握JavaScript在数据...

    图表及三测单demo

    开发者可能通过Ajax异步请求获取数据,然后在客户端渲染图表,提供动态交互体验。这涉及到前后端通信、JSON数据格式、JavaScript图表库的使用等技能。 4. 文件名称"传给崔超ip63谢谢": 这个文件名可能是项目交流...

    开源JS图表控件

    Highcharts是一款基于JavaScript的图表库,完全采用客户端代码实现,这意味着它无需服务器端支持,即可在用户的浏览器中生成各种动态、交互式的图表。这种特性使得Highcharts适用于各种Web应用程序,无论是小型项目...

    JS各种图表

    JS Charts 是一个强大的JavaScript库,专用于在网页上创建交互式的柱状图、饼图和曲线图。这个库的特点是轻量级且免费,无需在服务器端安装任何插件,只需在客户端的HTML文件中嵌入相应的JavaScript代码即可。JS ...

    Asp.net 2.0 自定义控件开发[开发一个图表(WebChart)控件(柱状图示例)](示例代码下载)收藏

    6. **客户端脚本支持**:为了增强用户体验,我们可能需要提供客户端API,让用户能够在浏览器端与图表交互,例如通过JavaScript实现鼠标悬停时显示数据详情。 在文件`SimpleGaugeBarControl`中,可能包含了实现上述...

    Javascript特效代码大全

    7. **图形绘制**:利用Canvas或SVG,JavaScript可以实现强大的图形绘制功能,制作图表、游戏、甚至复杂的3D图形。 8. **响应式设计**:JavaScript可以检测窗口大小变化,帮助实现响应式布局,使网页在不同设备上都...

    Node.js-绘制人物关系图谱的npm包

    如果你的项目需要在Web应用中展示这些图谱,可能还需要结合前端框架如React或Vue,将生成的图片发送到客户端展示。 总的来说,"Node.js-绘制人物关系图谱的npm包"是一个强大的工具,它简化了在Node.js中创建和展示...

    流程图Js插件,多种模板,可进行二次开发,基本覆盖各行业使用.zip

    此流程图插件就是在浏览器环境中运行的,通过JavaScript代码实现动态绘制和交互。 2. **G2**:G2是阿里云AntV数据可视化库的一部分,它是一个基于图形语法理论的二维图表绘制引擎,能够方便地构建出复杂的统计图表...

    基于web html javascript 的流程设计器

    MXGraph是一个强大的JavaScript库,专门用于在Web浏览器中绘制交互式图表,包括流程图。它提供了一套完整的API,用于创建、编辑和显示复杂的图形,非常适合用于构建流程设计器。 在详细说明中,我们可以深入探讨...

    anychart简单java使用

    这些数据包含了图表所需的系列、数据点、轴信息、标签等元素,一旦XML生成并发送到前端,AnyChart会自动解析并绘制出相应的图表。 在文件列表中,我们看到一个名为"map.bin"的文件。这可能是一个二进制文件,通常...

    JSP经典开发技巧 图表系统 JFreeChat 以及MVC架构

    本篇文章将深入探讨一些JSP开发中的经典技巧,包括客户端编程、发送Email、绘制图形、文件上传、编写国际化应用,以及使用JFreeChart图表系统和MVC架构。 首先,客户端编程是Web应用的重要组成部分。动态表格的实现...

    一种基于JFreeChart的Web统计图表.pdf

    JFreeChart是一款开源的Java图表绘制库,能够创建多种类型的图表,包括但不限于饼图、柱状图(普通与堆叠柱状图)、线图、区域图、分布图、混合图、甘特图以及各种仪表盘等。这些图表类型足以满足大多数统计展示的...

    JS Charts 最新完整版

    **JS图表库——JS Charts深度解析** JS Charts是一款强大的JavaScript图表库,专为网页开发者设计,用于创建数据可视化效果,如折线图、饼状图、柱状图等。这款库以其易用性、灵活性和丰富的自定义选项而受到广泛的...

    CSS插件工具箱--使用JavaScript和HTML5编写的100个CSS动态网站插件

    JavaScript作为客户端脚本语言,为CSS提供了动态化的可能。通过监听事件、修改DOM元素样式,JavaScript可以实现实时响应用户操作,创造出丰富的交互效果。而HTML5的新特性,如Canvas、SVG、Web Storage等,更是为CSS...

    k线图插件(兼容手机端、平板)

    JavaScript是一种轻量级的编程语言,尤其适合用于Web开发,它可以在客户端直接执行,无需服务器端的支持,大大降低了数据传输的延迟,提升了用户体验。此外,JavaScript有丰富的库和框架支持,如D3.js、Highcharts等...

    TeamJade-JavaScriptUI-DOM:我们团队工作项目的存储库,用于课程 JavaScript UI 和 DOM

    类似绘画的应用程序——绘制形状、线条等 一般要求 请在您的项目中定义并实现以下资产: JavaScript 客户端应用程序的要求 使用 HTML5 canvas + 或 Canvas 框架,如 KineticJS、paper.js 或其他 使用 SVG + 或 SVG ...

    HTML5报表统计静态页面

    1. **Canvas元素**:HTML5中的Canvas是用于绘制图形的画布,通过JavaScript API可以动态绘制各种图表,如折线图、柱状图、饼图等。开发者可以通过调用canvas上的方法来描绘数据,实现统计图表的动态效果。 2. **SVG...

    VkLibs-Graph-1.2.1.zip

    2. **图形库**:VkLibs-Graph是这个压缩包的核心,它可能包含了一系列用于绘制图形、图表的API,如折线图、柱状图、饼图、散点图等。这些API通常支持自定义颜色、大小、动画效果等,以满足不同应用场景的需求。 3. ...

    jsp源码其他类别动态显示JSP服务器内存的Ajax程序图像版-systemjc

    在客户端,则需要编写JavaScript代码来处理返回的数据,并使用图表库(如ECharts、D3.js等)绘制图表。 #### 技术栈与实现细节 - **前端**: - **HTML/CSS**:用于构建基本的页面结构和样式。 - **JavaScript/...

Global site tag (gtag.js) - Google Analytics