怎样在ASP里面创建统计图表

下面给出了一个通用的函数及其用例,请参考。 ```

REM 首先我们设计一个ShowCart函数,其中
REM aValues 是一个数值数组
REM aLables 是横坐标的标号
REM strTitle是这个统计图的标题
REM strXAxisLable X轴的标签
REM strYAxisLable Y轴的标签
Sub ShowChart(ByRef aValues, ByRef aLabels, ByRef strTitle, ByRef strXAxisLabel, ByRef strYAxisLabel)
' 你可以随便改变的图形常数
' 单位是屏幕像素点
Const GRAPH_WIDTH = 450 ' 图形宽度
Const GRAPH_HEIGHT = 250 ' 图形
Const GRAPH_BORDER = 5 ' 坐标线宽度
Const GRAPH_SPACER = 2 ' 统计条之间的距离
Const TABLE_BORDER = 0
' 变量声明
Dim I
Dim iMaxValue
Dim iBarWidth
Dim iBarHeight
' 取得aValues最大值
iMaxValue = 0
For I = 0 To UBound(aValues)
If iMaxValue < aValues(I) Then iMaxValue = aValues(I)
Next 'I
' 计算每条图形的宽度
iBarWidth = (GRAPH_WIDTH \ (UBound(aValues) + 1)) - GRAPH_SPACER
' 开始绘图

``` = strTitle ```

``` = strYAxisLabel ```& nbsp; &n bsp;& nbsp;
``` = iMaxValue ```
0
```

' 对数组所有数值进行循环,绘制条形图!
&amp; nbsp; For I = 0 To UBound(aValues)
iBarHeight = Int((aValues(I) / iMaxValue) * GRAPH_HEIGHT)
&amp; nbsp; &amp;n bsp; ' 因为浏览器会忽略0高度的条形图,所以用1代替!
&amp; nbsp; If iBarHeight = 0 Then iBarHeight = 1

 1<td valign="bottom"><img border="0" height="1" src="./images/spacer.gif" width="```
 2= GRAPH_SPACER 
 3```"/></td>
 4<td valign="bottom"><img alt="```
 5= aValues(I) 
 6```" border="0" height="```
 7= iBarHeight 
 8```" src="./images/spacer_red.gif" width="```
 9= iBarWidth 
10```"/></td>   

&amp; nbsp; Next 'I

 1</tr>
 2<tr>
 3<td colspan="```
 4= (2 * (UBound(aValues) + 1)) + 1 
 5```"><img border="0" height="```
 6= GRAPH_BORDER 
 7```" src="./images/spacer_black.gif" width="```
 8= GRAPH_BORDER + ((UBound(aValues) + 1) * (iBarWidth + GRAPH_SPACER)) 
 9```"/></td>
10</tr>   

' 检查横坐标数组是否有效!

If IsArray(aLabels) Then

1<tr>
2<td><!-- 留点空间 --></td>   

For I = 0 To UBound(aValues)

1<td><!-- 留点空间 --></td>
2<td align="center"><font size="1">```
3= aLabels(I) 
4```</font></td>   

Next 'I

1</tr>   

End If

 1</table>
 2</td>
 3</tr>
 4<tr>
 5<td colspan="2"><!-- 使下一个TD元素居中--></td>
 6<td align="center"><br/><b>```
 7= strXAxisLabel 
 8```</b></td>
 9</tr>
10</table>
1   
2End Sub   
1   
2' 一个带有横坐标的条形图   
3ShowChart Array(6, 10, 12, 18, 23, 26, 27, 28, 30, 34, 37, 45, 55), _   
4Array("P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9", _   
5"P10", "P11", "P12", "P13"), "连续几个月的销售额", "X 轴", "Y 轴"   
6' 空行   
7Response.Write "

<br/>

1" & vbCrLf   
2Response.Write "

<br/>

1" & vbCrLf   
2Response.Write "

<br/>

 1" & vbCrLf   
 2' 构造一个由随机数组成的数组   
 3Dim I   
 4Dim aTemp(49)   
 5Randomize   
 6For I = 0 to 49   
 7aTemp(I) = Int((50 + 1) * Rnd)   
 8Next 'I   
 9' 由随机数组生成的条形图   
10ShowChart aTemp, "这不是一个数组!", "随机条形图", "序号 ", "随机数"   
Published At
Categories with Web编程
Tagged with
comments powered by Disqus