画柱状图方法收集

  1、立体感的柱状图
  2
  3——这是在网上陶下来的漂亮代码
  4
  5  1<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
  6  2
  7  3<!--[if !mso]>
  8  4
  9  5<style>
 10  6
 11  7v\:*         { behavior: url(#default#VML) }
 12  8
 13  9o\:*         { behavior: url(#default#VML) }
 14 10
 15 11.shape       { behavior: url(#default#VML) }
 16 12
 17 13</style>
 18 14
 19 15<![endif]-->
 20 16
 21 17<HEAD>
 22 18
 23 19<TITLE>柱状图形报表样列</TITLE>
 24 20
 25 21<SCRIPT LANGUAGE="JavaScript">
 26 22
 27 23//addPole 增加一个柱状图
 28 24
 29 25//left 与窗口左边的距离
 30 26
 31 27//width  宽度
 32 28
 33 29//height 高度
 34 30
 35 31//zindex 层高度
 36 32
 37 33//fillcolor 主色
 38 34
 39 35//color 渐变色
 40 36
 41 37//type 默认为竖,1为横
 42 38
 43 39function addPole(left,top,width,height,zindex,fillcolor,color,type){
 44 40
 45 41   top=top-height;
 46 42
 47 43   var a="";
 48 44
 49 45   if(type==1){
 50 46
 51 47      a="angle='-90' focus='100%'";
 52 48
 53 49   }

 54 50
 55 51   var html="<v:rect style='position:absolute;";
 56 52
 57 53   html=html+"left:"+left+"px;";
 58 54
 59 55   html=html+"top:"+top+"px;";
 60 56
 61 57   html=html+"width:"+width+"px;";
 62 58
 63 59   html=html+"height:"+height+"px;";
 64 60
 65 61   html=html+"z-index:"+zindex+"'";
 66 62
 67 63   html=html+"fillcolor='"+fillcolor+"'>";
 68 64
 69 65   html=html+"<v:fill color2='"+color+"'";
 70 66
 71 67   html=html+" rotate='t' "+a+"  type='gradient'/><o:extrusion v:ext='view' backdepth='20pt' ";
 72 68
 73 69   html=html+"color='"+fillcolor+"' on='t'/></v:rect>";
 74 70
 75 71   document.write(html);
 76 72
 77 73}

 78 74
 79 75 
 80 76
 81 77//left 与窗口左边的距离
 82 78
 83 79//width  宽度
 84 80
 85 81//height 高度
 86 82
 87 83//zindex 立体高度
 88 84
 89 85//fillcolor 主色
 90 86
 91 87function addBackground(left,top,width,height,zindex,fillcolor){
 92 88
 93 89   top=top-height;
 94 90
 95 91   var html="<v:rect style='position:absolute;left:"+left+"px;";
 96 92
 97 93   html=html+"top:"+top+"px;";
 98 94
 99 95   html=html+"width:"+width+"px;";
100 96
101 97   html=html+"height:"+height+"px;";
102 98
103 99   html=html+"z-index:"+zindex+"'";
104100
105101   html=html+"fillcolor='"+fillcolor+"'";
106102
107103   html=html+" stroked='f'><v:fill rotate='t' angle='-45' focus='100%' type='gradient'/></v:rect>";
108104
109105   document.write(html);
110106
111107}

112108
113109 
114110
115111function addLine(zindex,from,to,color){
116112
117113       var html="<v:line style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:"+zindex+"'";
118114
119115       html=html+" from='"+from+"' to='"+to+"' strokecolor='"+color+"'/>"
120116
121117       document.write(html);
122118
123119}

124120
125121 
126122
127123function addText(left,top,width,height,zindex,value,fontsize){
128124
129125       top=top-height;
130126
131127   var html="<v:shape style='position:absolute;left:"+left+"px;";
132128
133129   html=html+"top:"+top+"px;";
134130
135131   html=html+"width:"+width+"px;";
136132
137133   html=html+"height:"+height+"px;";
138134
139135   html=html+"z-index:"+zindex+"'>";
140136
141137   html=html+"<v:textbox inset='0px,0px,0px,0px'><table cellspacing='3' cellpadding='0' width='100%' height='100%'><tr><td";
142138
143139   html=html+" style='FONT-SIZE:"+fontsize+"' align='center'>"+value+"</td></tr></table></v:textbox></v:shape>";
144140
145141   document.write(html);
146142
147143}

148144
149145 
150146
151147function addGround(left,top,width,height,zindex,fillcolor,linecolor1,linecolor2,offset,level,min,leftoffset,textwidth,textheight,fontsize){
152148
153149   addBackground(left,top,width,height,zindex,fillcolor);
154150
155151   addLine(zindex,left+"px,"+top+"px",((left-0)+(width-0))+"px,"+top+"px",linecolor1);
156152
157153   addLine(zindex,left+"px,"+top+"px",left+"px,"+(top-height)+"px",linecolor1);
158154
159155   addLine(zindex,((left-0)+(offset-0))+"px,"+(top-offset)+"px",((left-0)+(width-0))+"px,"+(top-offset)+"px",linecolor2);
160156
161157   addLine(zindex,((left-0)+(offset-0))+"px,"+(top-offset)+"px",((left-0)+(offset-0))+"px,"+(top-height)+"px",linecolor2);
162158
163159   addLine(zindex,left+"px,"+(top-offset)+"px",((left-0)+(offset-0))+"px,"+top+"px",linecolor2);
164160
165161   for(var i=1;i<level;i++){
166162
167163      addLine(zindex,left+"px,"+(top-offset-(height*i)/level)+"px",((left-0)+(offset-0))+"px,"+(top-(height*i)/level)+"px",linecolor2);
168164
169165         addLine(zindex,(left-leftoffset)+"px,"+(top-(height*i)/level)+"px",left+"px,"+(top-(height*i)/level)+"px",linecolor1);
170166
171167      addText(left-textwidth,(top-(height*i)/level)+(textheight-0)+2,textwidth,textheight,"-1",i*min,fontsize)
172168
173169         addLine(zindex,((left-0)+(offset-0))+"px,"+(top-offset-(height*i)/level)+"px",((left-0)+(width-0))+"px,"+(top-offset-(height*i)/level)+"px",linecolor2);
174170
175171   }

176172
177173   addLine(zindex,(left-leftoffset)+"px,"+(top-(height*level)/level)+"px",left+"px,"+(top-(height*level)/level)+"px",linecolor1);
178174
179175   addText(left-textwidth,(top-(height*level)/level)+(textheight-0)+2,textwidth,textheight,"-1",level*min,fontsize)
180176
181177}

182178
183179 
184180
185181function addEPole(left,top,width,height,zindex,fillcolor,color,textwidth,textheight,value1,value2,fontsize){
186182
187183       addText(left-textwidth/2+width/2,top-height-10,textwidth,textheight,zindex,value1,fontsize);
188184
189185       addText(left-textwidth/2+width/2,(top-0)+(textheight-0),textwidth,textheight,zindex,value2,fontsize);
190186
191187       addPole(left,top,width,height,zindex,fillcolor,color)
192188
193189}

194190
195191
</SCRIPT>
196192
197193</HEAD>
198194
199195 
200196
201197<BODY>
202198
203199<div>
204200
205201<SCRIPT LANGUAGE="JavaScript">
206202
207203<!--
208204
209205 
210206
211207addEPole("180","400","30","150","1","#3300FF","#66FFFF","80","18","300","1月份","9pt");
212208
213209addEPole("230","400","30","300","1","#FF0000","#99FFFF","80","18","600","2月份","9pt");
214210
215211addEPole("280","400","30","200","1","#33CC00","#99FFFF","80","18","400","3月份","9pt");
216212
217213addEPole("330","400","30","100","1","#FF0099","#99FFFF","80","18","200","4月份","9pt");
218214
219215addEPole("380","400","30","50","1","#660000","#99FFFF","80","18","100","5月份","9pt");
220216
221217addEPole("430","400","30","20","1","#FFFF00","#99FFFF","80","18","40","6月份","9pt");
222218
223219addEPole("480","400","30","180","1","#330066","#99FFFF","80","18","360","7月份","9pt");
224220
225221addEPole("530","400","30","120","1","#CC6633","#99FFFF","80","18","240","8月份","9pt");
226222
227223addEPole("580","400","30","80","1","#9933FF","#99FFFF","80","18","160","9月份","9pt");
228224
229225addGround("160","400","460","300","-1","#33CCFF","#000000","#6699CC","10","6","100","20","40","18","9pt")
230226
231227//-->
232228
233229
</SCRIPT>
234230
235231</div>
236232
237233</body>
238234
239235</html>
240


效果图如下:



其中方法调用,想知道每个参数的详细信息

addEPole("580","400","30","80","1","#9933FF","#99FFFF","80","18","160","9月份","9pt");

参数含义包括上边距离,左边距,以及高宽,以及XY上的内容 。以及颜色,柱体的宽度等等信息。

addGround("160","400","460","300","-1","#33CCFF","#000000","#6699CC","10","6","100","20","40","18","9pt")

定义了范围大小以及6个刻度,每个100,还包括字体大小,刻度线颜色,以及内部线条颜色,以及渐变色等等含义。
文章转自以下地址,在此感谢作者的分享

  http://www.blogjava.net/JAVA-HE/archive/2007/06/29/126957.html
http://www.blogjava.net/JAVA-HE/archive/2007/05/08/115813.html



posted @ 2008-06-12 16:47  TerryLove  阅读(403)  评论(0编辑  收藏  举报