- 浏览: 23466 次
- 性别:
- 来自: 湖北荆州
最近访客 更多访客>>
文章分类
最新评论
-
wcd.5:
谢谢提供,该教材太适合刚入门的人了
JQuery学习 -
zzg810314:
不错,可以做个数据图表展示
javascript+vml做柱状统计图
最近因工作需要需要用javascript在客户端做图表统计功能,在网上找到一个不错的方式法,用VML来绘制图表(showPercent.html):
java 代码
- <html xmlns:v="urn:schemas-microsoft-com:vml">
- <head>
- <title>图表</title>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></head>
- <STYLE>
- v\:* { BEHAVIOR: url(#default#VML) }
- .memo{
- border-top: solid black;
- border-right:solid black;
- border-bottom:solid black;
- border-left:solid black;
- padding-top:10px;
- padding-left:10px;
- padding-bottom:10px;
- padding-right:10px;
- border-width:1px;
- background-color:#EFEFEF;
- font-size:9pt;
- font-family:宋体;
- }
- .memo1{
- padding-top:3px;
- padding-left:3px;
- padding-bottom:3px;
- padding-right:3px;
- border-width:1px;
- background-color:#EFEFEF;
- font-size:9pt;
- font-family:宋体;
- }
- .ddd{
- border-top: solid silver;
- border-right:solid silver;
- border-bottom:solid silver;
- border-left:solid silver;
- border-width:1px;
- }
- .title{
- padding-top:5px;
- padding-left:10px;
- padding-bottom:5px;
- padding-right:10px;
- font-size:10pt;
- font-family:宋体;
- }
- A{
- font-size:9pt;
- color: blue;
- text-decoration:none;
- }
- A:hover{color:red;text-decoration:underline;}
- </STYLE>
- <script>
- // 该段变量用 ASP 获取表单值 来设置
- var aoNum = new Array(); // 分数集合
- var aoMember = new Array(); // 分数对应集合
- // 该段变量用 ASP 获取表单值 来设置
- var aoPercent = null; // 保存对 aoNum 成员对应应百分比
- var count = 0;
- // 设置 aoPercent
- function InintaoPercent(){
- aoMember = window.location.search.match(/counts=([^&]+)/)[1].split(",");
- aoNum = window.location.search.match(/members=([^&]+)/)[1].split(",");
- count = eval(aoMember.join("+"));
- if(aoNum.length == 0) return false;
- aoPercent = new Array();
- for(var i=0; i<aoNum.length; i++){
- aoPercent[i] = Math.round(100*aoMember[i]/count);
- }
- for(var i = 0 ; i < aoNum.length; i ++)
- {
- temarray0[i] = aoNum[i];
- temarray1[i] = Math.round(10* aoPercent[i]) // 1000 * aoPercent[i] / 100
- }
- dataarray[0] = temarray0
- dataarray[1] = temarray1
- }
- ///////////////////////////////////////////////////////
- var dSumData = 0
- var dCs = 0
- var MaxData = 0
- var dataarray = new Array()
- var temarray0 = new Array()
- var temarray1 = new Array()
- function drawLinesX(m)
- {
- var num = aoMember;
- for(var i=0;i<num.length;i++){
- for(var j=0;j<i;j++){
- if(parseInt(num[j])<parseInt(num[i])){
- var filter = num[j];
- num[j]=num[i];
- num[i]=filter;
- }
- }
- }
- var temp = num[0]/5;
- count=0; //画横坐标
- var str = 1;
- var textPoint=Math.round(temp);
- for(var i=1;i<=10;i++){
- var py=2750-i*245;
- var strTo=m+" "+py;
- var newLine = document.createElement("<v:line from='200 "+py+"' to='"+strTo+"' style='position:absolute;z-index:8'></v:line>");
- group2.insertBefore(newLine);
- if(count%2!=0){
- var newStroke = document.createElement("<v:stroke color='#c0c0c0'>");
- newLine.insertBefore(newStroke);
- var newShape= document.createElement("<v:shape style='position:absolute;left:0;top:"+(py-50)+";WIDTH:1000px;HEIGHT:200px;z-index:8' coordsize='21600,21600' fillcolor='white'></v:shape>")
- group2.insertBefore(newShape);
- var newText = document.createElement("<v:textbox id='tx"+textPoint+"' inset='3pt,0pt,3pt,0pt' style='font-size:10pt;v-text-anchor:bottom-right-baseline'></v:textbox>");
- newShape.insertBefore(newText);
- newText.innerText=textPoint;
- str += 1;
- textPoint = Math.round(temp*str);
- }
- else{
- var newStroke = document.createElement("<v:stroke dashstyle='dot' color='black'/>");
- newLine.insertBefore(newStroke);
- }
- count++;
- }
- }
- function drawLinesY()
- {
- //画X轴上的刻度
- var textPoint= "";
- var fColWidth = 4200 / (dataarray[0].length + 1)
- var iCols = dataarray[0].length + 1
- for(var i=1;i<=iCols;i++){
- if(i != iCols) textPoint = dataarray[0][i-1]
- else textPoint = ""
- var py=170+ i * fColWidth ;
- var newLine = document.createElement("<v:line from='"+py+" 2700' to='"+py+" 2750' style='position:absolute;z-index:8'></v:line>");
- group2.insertBefore(newLine);
- var newStroke = document.createElement("<v:stroke color='black'>");
- newLine.insertBefore(newStroke);
- var newShape= document.createElement("<v:shape style='position:absolute;left:"+(py-50)+";top:2750;WIDTH:200px;HEIGHT:150px;z-index:8' coordsize='21600,21600' fillcolor='white'></v:shape>")
- group2.insertBefore(newShape);
- var newText = document.createElement("<v:textbox id='ty"+textPoint+"' inset='0pt,0pt,0pt,0pt' style='font-size:9pt;v-text-anchor:top-right-baseline'></v:textbox>");
- //生成文本筐
- newShape.insertBefore(newText);
- newText.innerHTML= textPoint;
- }
- }
- function drawBar(v,t,color)
- {
- var textPoint= "";
- var fColWidth = 4200 / (dataarray[0].length + 1);
- var iCols = dataarray[0].length + 1;
- for(var i = 0; i < iCols - 1; i ++)
- {
- if(MaxData < dataarray[1][i]) MaxData = dataarray[1][i];
- dSumData = dSumData + dataarray[1][i];
- }
- if(dSumData == 0) dSumData = 1;
- if(MaxData == 0) MaxData = 1;
- dCs = 2400 / MaxData;
- for(var i = 0; i < iCols - 1; i ++)
- {
- var textPoint = dataarray[1][i];
- var h = dCs * dataarray[1][i];
- var px=2700 - h;
- var py=170 + i * fColWidth + fColWidth / 4 * 3;
- var color1="rgb("+Math.round(Math.random()*255)+","+Math.round(Math.random()*255)+","+Math.round(Math.random()*255)+")";
- //alert(color1)
- var newShape= document.createElement("<v:rect style='position:absolute;left:"+py+";top:"+px+";WIDTH:" + fColWidth / 2 + "px;HEIGHT:"+h+"px;z-index:9;border-width:0' fillcolor='" + color1 + "' title = '本项数值为:" + aoMember[i] + " 总和为:" + count + " 百分比:" + (aoPercent[i]) + "%'></v:rect>");
- group2.insertBefore(newShape);
- }
- }
- function drawBars()
- {
- drawLinesX(4500);
- //画横线
- drawLinesY();
- //画X轴的刻度
- drawBar(2.5,1,"blue");
- }
- function window.onload(){
- InintaoPercent();
- drawBars();
- }
- </script>
- <body style="margin: 0px; border: 0px;">
- <table align="center" ID="Table1">
- <tr>
- <td >
- <div class="memo" style="width:700;line-height:23px">
- <center><strong>数据图表</strong></center>
- <br>
- <v:group ID="group2" style="WIDTH:700px;HEIGHT:500px" coordsize="4900,3500">
- <v:line from="200,100" to="200,2700" style="Z-INDEX:8;POSITION:absolute" strokeweight="1pt">
- <v:stroke StartArrow="classic"/>
- </v:line>
- <v:line from="200,2700" to="4500,2700" style="Z-INDEX:8;POSITION:absolute" strokeweight="1pt">
- <v:stroke EndArrow="classic"/>
- </v:line>
- <v:rect style="WIDTH:4600px;HEIGHT:2900px" coordsize="21600,21600" fillcolor="white" strokecolor="black">
- <v:shadow on="t" type="single" color="silver" offset="4pt,3pt"></v:shadow>
- </v:rect>
- <v:shape style="position:absolute;left:50;top:2650;WIDTH:1000px;HEIGHT:200px;z-index:8" coordsize="21600,21600" fillcolor="white">
- <v:textbox id="text1" inset="3pt,0pt,3pt,0pt" align="center" style="font-size:10pt;v-text-anchor:bottom-center-baseline">0</v:textbox>
- </v:shape>
- </v:group>
- </div>
- </td>
- </tr>
- </table>
- </body>
上面是生成图表的代码,调用的代码如下:
showPercent.html?counts=a,b,c,d,e,f&members=3,5,2,7,4,5
相关推荐
用javascript+ajax+vml生成折线图javascript类打包
Javascript + VML + SVG 工作流设计器
vml+javascript直接在浏览器中绘制动态曲线图实例(源码-+Think+in+vml++vml+极道教程)
javascript脚本+vml划画,具有洗牌、提示等功能
带tooltip的js+vml曲线图示例
asp.net+vml流程图代码,简单修改就可以使用
vml+javascript实现的3d柱状图(仅适用于ie),最新版本已在http://www.codigg.com/上免费放出。
HTMl + VML工作流程 自定义工作流
自己写的用js生成vml,支持简便地结合数据库,附有例子及说明
vml+javascript直接在浏览器中绘制动态曲线图实例
以前发布过一个asp+vml曲线图代码,现在看到一个js+vml曲线图代码 <HTML xmlns:v="urn:schemas-microsoft-com:vml"xmlns:o="urn:schemas-microsoft-com:office:office"> ; charset=gb2312" /> 曲线 ...
asp+vml图表 flash方式展示,动态获取数据
ASP+VML技术打造一款漂亮的统计图表;ASP+VML技术打造一款漂亮的统计图表;
vml实现柱状图vml实现柱状图vml实现柱状图vml实现柱状图vml实现柱状图vml实现柱状图
绝对值10分的好东西,最全面的网站制作手册 html css javascript jquery+php xml vb flash MX dom vml等等共18个手册
真正的ASP+VML生成曲线图形,内有截图,绝对超值。
javascript+vml开发的流程图 j
使用JSP+VML动态绘制列车运行图.pdf
ASP结合VML生成柱状图
网页制作\网页源码\动态曲线 ASP+VML