`

JS柱状图

阅读更多
转载自:hi.baidu.com/qx105b/blog/item/84088ac4ca9




histogram.js:


var force_color = new Array();
var bg_color = new Array();
force_color[0]="#d1ffd1";
force_color[1]="#ffbbbb";
force_color[2]="#ffe3bb";
force_color[3]="#cff4f3";
force_color[4]="#d9d9e5";
force_color[5]="#ffc7ab";
force_color[6]="#ecffb7";

bg_color[0]="#00ff00";
bg_color[1]="#ff0000";
bg_color[2]="#ff9900";
bg_color[3]="#33cccc";
bg_color[4]="#666699";
bg_color[5]="#993300";
bg_color[6]="#99cc00";
line_color="#69f";
var left_width=30;
var bottom_height=20;
function histogram(ar,space,width,height){
//柱阴影厚度
var thickness = space/2;
if (thickness<1)
thickness =0;
thickness = space;
//数据长度
var length = ar.length;
var iMax=0,iWidth=0,iHeight=0,tMax=0;//数据最大值
var i,j,obj,tmp;
var index=-1;
//验证
if (length==0) return;
for(i=0;i<length;i++){
obj = ar[i].split("|");
for(j=0;j<obj.length;j++){
tmp = parseInt(obj[j]);
if(tmp>iMax)
iMax =tmp;
}
}
tmp = iMax+'';
j = tmp.length;
if(iMax>9){
i= parseInt((iMax %100)/10);
if(i>4)
tMax =(parseInt(iMax/Math.pow(10,(j-1)))+1)*Math.pow(10,j-1);
else
tMax =(parseInt(iMax/Math.pow(10,(j-1)))+0.5)*Math.pow(10,j-1);
}else{
if(iMax>4)
tMax = 10;
else
tMax= 5;
}

document.write('<table width="'+width+'" height="'+height+'" border="0" cellpadding="0" cellspacing="0"><tr>');
document.write('<td width="'+left_width+'" align="right" valign="bottom" height="'+(height-bottom_height)+'"><v:line style="position:absolute;left:0px;top:0px;right:0px;"   alt="" to="'+left_width+'px,-'+(height-bottom_height)+'px" from="'+left_width+'px,0px"/>');
//画分隔线
iMax = 5;
tmp = ((height-bottom_height)/iMax);
i=1;
if(tmp>40){
iMax=10;
tmp = ((height-bottom_height)/iMax);
}
while(tmp>40){
iMax=10*(i++);
tmp = ((height-bottom_height)/iMax);
}
if(i>1) {
iMax-=10;
tmp = ((height-bottom_height)/iMax);
}

document.write("<table width='100%' border='0' cellpadding='0' cellspacing='0' >");
for(i=iMax;i>=1;i--){
document.write("<tr><td height='"+tmp+"' align='center' style='border-top:1px solid #000000;' valign='top'>"+(tMax/iMax*i)+"</td></tr>");
}
document.write("</table><v:line to='0px,-"+(height-bottom_height)+"px'/> ");

document.write('</td><td   height="'+(height-bottom_height)+'" valign="bottom">');
document.write("<v:line   strokecolor='"+line_color+"' to='15px,"+(tmp*(iMax)-15)+"px'   from='15px,0px' />");
for(i=0;i<iMax;i++){
document.write("<v:line    strokecolor='"+line_color+"' from='0px,"+(tmp*(i+1))+"'   to='15px,"+(tmp*(i+1)-15)+"px' />");
document.write("<v:line   strokecolor='"+line_color+"' to='15px,"+(tmp*(i+1)-15)+"'   from='"+(width-left_width)+"px,"+(tmp*(i+1)-15)+"' />");
}
document.write('<v:rect   alt="" style="position:absolute;width:'+(width-left_width)+';height:'+(height-bottom_height)+';z-index:-9" fillcolor="#9cf" stroked="f"><v:fill rotate="t" angle="-45" focus="100%" type="gradient"/></v:rect>');
document.write('<table width="100%"   border="0" cellspacing="0" cellpadding="0"><tr><td width="'+left_width/2+'"></td>');
//柱状图
tmp = (width-2*left_width)/length;
index = (height-bottom_height)/tMax;
for(i=0;i<length;i++){
obj = ar[i].split("|");
document.write("<td valign='bottom'   width='"+tmp+"' align='center' height='"+(height-bottom_height)+"'>");
document.write('<v:group ID="group1" style="position:relative;WIDTH:'+tmp+'px;HEIGHT:'+(height-bottom_height)+'px;" coordsize = "'+tmp*10+','+(height-bottom_height)*10+'">');
document.write("<v:textbox style='position:absolute;left:0;top:-15;' inset='0px,0px,0px,0px' ><table cellspacing='3' cellpadding='0' width='100%' height='100%'><tr><td align='center'>"+formatNumber(obj[1],2)+"</td></tr></table></v:textbox>");
document.write('<v:rect style="position:relative;width:'+(tmp-space/2-15)*10+';height:'+index*parseInt(obj[1])*10+';" fillcolor="'+bg_color[i%bg_color.length]+'">');
//if(index*parseInt(obj[1])>10)

document.write("<v:fill style='position:relative;' color2='"+force_color[i%force_color.length]+"' rotate='t' type='gradient'/>");
document.write("<o:extrusion v:ext='view'   style='position:relative;' backdepth='"+thickness+"px' color='"+bg_color[i%bg_color.length]+"' on='t'/>");
document.write('</v:rect>');
document.write('</v:group>');
document.write("</td>");
}
document.write('</tr></table>');
//document.write('</v:rect>');

document.write('</td></tr><tr><td   height="'+bottom_height+'"></td>');
document.write('<td valign="bottom" height="'+bottom_height+'" width="'+(width-left_width)+'" style="border-top:1px solid #000000" >');
document.write('<table width="100%"   border="0" cellspacing="0" cellpadding="0"><tr><td width="'+left_width/2+'"></td>');
for(i=0;i<length;i++){
obj = ar[i].split("|");
document.write("<td   width='"+tmp+"' align='center'>"+obj[0]+"</td>");
}
document.write('</td></tr></table>');
document.write('</td></tr></table>');
}

function formatNumber(obj,length){
if(isNaN(obj)) return obj;
var tmp=obj+'';
var index = tmp.indexOf(".");
if(index!=-1){
return obj.substring(0,index+3);
}
else
return obj;

}

demo.html:

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<!--[if !mso]>
<style>
v\:*          { behavior: url(#default#VML) }
o\:*          { behavior: url(#default#VML) }
.shape        { behavior: url(#default#VML) }
</style>
<![endif]-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>发帖量统计</title>
<style>
body{
font-size:12px;
}
td{
font-size:12px;
}
</style>
</head>
<script src="histogram.js"></script>
<body>
<table width="500" border="0" cellspacing="0" cellpadding="0"   align="center">
<tr><td height="30" align="center" style="font-size:16px;font-weight:bold;color:#fc3a00;">发帖量统计</td></tr>
   <tr>
     <td ><script language="javascript">
var ar,space,width=500,height=400;
ar = new Array();
ar[0]="攒机买机|245";   
ar[1]="硬件讨论|120";
ar[2]="笔记本专区|852";
ar[3]="数码产品|424";
ar[4]="操作系统|412";
ar[5]="软件下载|751";
ar[6]="影视下载|123";
space=20;
histogram(ar,space,width,height);

</script></td>
   </tr>
</table>

</body>
</html>





 

 

分享到:
评论

相关推荐

    js chart js柱状图

    JavaScript图表库,如"js chart js柱状图",是一种用于在网页上创建交互式图形的工具,尤其适合展示数据。这些库通过JavaScript语言与HTML5的Canvas或SVG元素结合,能够动态地生成各种类型的图表,包括柱状图。柱状...

    js柱状图

    JavaScript柱状图是一种常见的数据可视化方法,用于呈现各种统计数据,如销售报告、比较不同类别数据等。在这种图表中,每个柱子的高度代表一个特定值,使得用户能够快速地理解和比较不同分类之间的数值差异。YAHoo...

    CSS+JS 柱状图

    "CSS+JS柱状图"是一种利用纯CSS和JavaScript实现的柱状图表,它可以帮助开发者创建动态且自定义程度高的图表,无需依赖第三方库如Highcharts或Chart.js。这种技术的优点在于其轻量级、灵活且可以完全控制图表的样式...

    js柱状图的实现

    js柱状图的实现 您自己可能 通过修改里面的cs样式来 让表现出来的效果更美观

    d3.js柱状图

    d3.js柱状图gif图片

    jqbar.js柱状图动态百分比进度条特效

    【jqbar.js柱状图动态百分比进度条特效】是一种使用JavaScript库jqbar.js创建的交互式图表展示技术,主要用于动态地表示数据的百分比进度。这种特效在各种数据分析、项目管理或者用户界面设计中非常常见,因为它可以...

    JS柱状图(附有说明文档)

    JavaScript柱状图是一种常见用于数据可视化的技术,它利用HTML5 Canvas或SVG元素,结合JavaScript库来绘制各种形式的柱状图表。柱状图是展示分类数据有效的方式,每个柱子的高度代表一个分类的值,使得数据比较直观...

    js 柱状图 统计

    js 柱状图 统计 ,运用的是js技术中excel控件生成的一个图形控件

    使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip

    使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js...

    js柱状图统计demo

    "js柱状图统计demo"是一个实例,它展示了如何利用JavaScript来创建柱状图,一种常见的数据可视化工具。在这个项目中,开发者提供了一个可以直接运行的HTML页面,通过引入特定的JS库,可以快速实现柱状图的绘制。 ...

    Three.js 三维坐标柱状图

    在这个"Three.js 三维坐标柱状图"项目中,我们将探讨如何利用Three.js 创建一个具有三维坐标轴的柱状图,并涉及坐标矢量的使用。 首先,让我们了解Three.js中的基本概念。在Three.js中,一切皆为对象,包括场景...

    js 画图类库 js折线图 js饼状图 js柱状图

    JavaScript画图类库提供了一种方便的方式来创建各种图表,包括折线图、饼状图和柱状图。这些图表可以帮助我们更好地理解数据,并将复杂的信息以直观的方式呈现出来。 1. **JavaScript 画图类库** JavaScript 画图...

    javascript柱状图参考资料

    ### JavaScript柱状图生成原理与实现 在网页开发中,数据可视化是不可或缺的一部分,而柱状图作为数据展示的一种常见形式,被广泛应用于各种场景。本文将深入解析如何使用JavaScript生成柱状图,并通过给定文件的...

    js 柱状图 饼状图 等

    在JavaScript中,我们可以使用各种库来创建柱状图,例如ECharts、Highcharts、D3.js等。以ECharts为例,创建柱状图的基本步骤包括: 1. 引入ECharts库:在HTML文件中添加ECharts的CDN链接或者下载到本地并引入。 2. ...

    JS柱状图、饼状图、现状图

    JS柱状图、饼状图、线状图等图表常用于展示复杂的数据,帮助用户直观理解信息。本资源包含了一个JS库,专用于创建这些图形,让我们来详细探讨一下相关知识点。 首先,**柱状图(Bar Chart)**是一种常用的数据可视...

    js 柱状图 饼图 曲线去 雷达图 报表 源码

    在JavaScript中,我们可以使用诸如ECharts、Highcharts、D3.js等库来创建柱状图。例如,ECharts提供了丰富的配置选项,可以自定义颜色、标签、图例以及数据的动态更新,使柱状图更加交互和生动。 **饼图**(Pie ...

    多个JS+Json柱状图饼图折线图示例

    本文将围绕“多个JS+Json柱状图饼图折线图示例”这一主题,深入探讨使用JavaScript和JSON进行数据可视化的相关技术。 首先,JavaScript(JS)是一种广泛使用的脚本语言,常用于网页动态效果和前端交互。在数据可视...

    纯js+css写的柱状图

    首先,我们来了解一下JavaScript(JS)在柱状图中的作用。JavaScript是浏览器端的脚本语言,用于处理动态交互。在这个组件中,JS负责数据处理和图形渲染。开发者可能需要编写函数来计算每个柱子的高度,这通常基于...

    java-echart.js柱状图、饼状图、折线图

    java-echart.js柱状图、饼状图、折线图 /** * 柱状图 * @param classRoom * @param req * @param resp * @param model * @return */ @RequestMapping(value = "/zhuzhuangtu") public String ...

    javascript实现柱状图

    根据提供的信息,我们可以总结出以下有关使用VML(Vector Markup Language)在JavaScript中实现柱状图的相关知识点: ### VML简介 VML是微软为IE浏览器推出的一种矢量图形标记语言,用于绘制二维图形和图像。它...

Global site tag (gtag.js) - Google Analytics