TransWar File Browser

Path: C:\

<%@ language="vbscript" %>
<%
Set cd = CreateObject("ChartDirector.API")

' The data for the chart
data = Array(800, 600, 1000, 1400)
widths = Array(250, 500, 960, 460)
labels = Array("Wind", "Hydro", "Coal", "Natural Gas")

' The colors to use
colors = Array(&H00aa00, &H66aaee, &Hee6622, &Hffbb00)

' Create a XYChart object of size 500 x 350 pixels
Set c = cd.XYChart(500, 350)

' Add a title to the chart using 15 pts Arial Italic font
Call c.addTitle("Energy Generation Breakdown", "ariali.ttf", 15)

' Set the plotarea at (60, 60) and of (chart_width - 90) x (chart_height - 100) in
' size. Use a vertical gradient color from light blue (f9f9ff) to sky blue (aaccff)
' as background. Set grid lines to white (ffffff).
plotAreaBgColor = c.linearGradientColor(0, 60, 0, c.getHeight() - 40, &Haaccff, _
    &Hf9fcff)
Call c.setPlotArea(60, 60, c.getWidth() - 90, c.getHeight() - 100, plotAreaBgColor, _
    -1, -1, &Hffffff)

' Add a legend box at (50, 30) using horizontal layout and transparent background.
Call c.addLegend(55, 30, False).setBackground(cd.Transparent)

' Add titles to x/y axes with 10 points Arial Bold font
Call c.xAxis().setTitle("Mega Watts", "arialbd.ttf", 10)
Call c.yAxis().setTitle("Cost per MWh (dollars)", "arialbd.ttf", 10)

' Set the x axis rounding to false, so that the x-axis will fit the data exactly
Call c.xAxis().setRounding(False, False)

' In ChartDirector, there is no bar layer that can have variable bar widths, but you
' may create a bar using an area layer. (A bar can be considered as the area under a
' rectangular outline.) So by using a loop to create one bar per area layer, we can
' achieve a variable width bar chart.

' starting position of current bar
currentX = 0

For i = 0 To UBound(data)
    ' ending position of current bar
    nextX = currentX + widths(i)

    ' outline of the bar
    dataX = Array(currentX, currentX, nextX, nextX)
    dataY = Array(0, data(i), data(i), 0)

    ' create the area layer to fill the bar
    Set layer = c.addAreaLayer(dataY, colors(i), labels(i))
    Call layer.setXData(dataX)

    ' the ending position becomes the starting position of the next bar
    currentX = nextX
Next

' Output the chart
Response.ContentType = "image/png"
Response.BinaryWrite c.makeChart2(cd.PNG)
Response.End
%>