ChartDirector 6.0 (ASP/COM/VB Edition)

Polar Area Chart




This examples demonstrates a polar area chart.

The polar area layer is created using PolarChart.addAreaLayer. In this example, 3 area layers are used. The area data are already stacked before passing to ChartDirector.

Source Code Listing

[Web Version (in ASP)] aspdemo\polararea.asp
<%@ language="vbscript" %>
<%
Set cd = CreateObject("ChartDirector.API")

' Data for the chart
data0 = Array(5, 3, 10, 4, 3, 5, 2, 5)
data1 = Array(12, 6, 17, 6, 7, 9, 4, 7)
data2 = Array(17, 7, 22, 7, 18, 13, 5, 11)

labels = Array("North", "North<*br*>East", "East", "South<*br*>East", "South", "South<*br*>West", _
    "West", "North<*br*>West")

' Create a PolarChart object of size 460 x 500 pixels, with a grey (e0e0e0) background and 1 pixel
' 3D border
Set c = cd.PolarChart(460, 500, &He0e0e0, &H000000, 1)

' Add a title to the chart at the top left corner using 15pt Arial Bold Italic font. Use a wood
' pattern as the title background.
Call c.addTitle("Polar Area Chart Demo", "arialbi.ttf", 15).setBackground(c.patternColor( _
    Server.MapPath("wood.png")))

' Set center of plot area at (230, 280) with radius 180 pixels, and white (ffffff) background.
Call c.setPlotArea(230, 280, 180, &Hffffff)

' Set the grid style to circular grid
Call c.setGridStyle(False)

' Add a legend box at top-center of plot area (230, 35) using horizontal layout. Use 10pt Arial Bold
' font, with 1 pixel 3D border effect.
Set b = c.addLegend(230, 35, False, "arialbd.ttf", 9)
Call b.setAlignment(cd.TopCenter)
Call b.setBackground(cd.Transparent, cd.Transparent, 1)

' Set angular axis using the given labels
Call c.angularAxis().setLabels(labels)

' Specify the label format for the radial axis
Call c.radialAxis().setLabelFormat("{value}%")

' Set radial axis label background to semi-transparent grey (40cccccc)
Call c.radialAxis().setLabelStyle().setBackground(&H40cccccc, 0)

' Add the data as area layers
Call c.addAreaLayer(data2, -1, "5 m/s or above")
Call c.addAreaLayer(data1, -1, "1 - 5 m/s")
Call c.addAreaLayer(data0, -1, "less than 1 m/s")

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

[Windows Version (in Visual Basic)] vbdemo\polararea.cls
Public Sub createChart(viewer As Object, chartIndex As Integer)

    Dim cd As New ChartDirector.API

    ' Data for the chart
    Dim data0()
    data0 = Array(5, 3, 10, 4, 3, 5, 2, 5)
    Dim data1()
    data1 = Array(12, 6, 17, 6, 7, 9, 4, 7)
    Dim data2()
    data2 = Array(17, 7, 22, 7, 18, 13, 5, 11)

    Dim labels()
    labels = Array("North", "North<*br*>East", "East", "South<*br*>East", "South", _
        "South<*br*>West", "West", "North<*br*>West")

    ' Create a PolarChart object of size 460 x 500 pixels, with a grey (e0e0e0) background and 1
    ' pixel 3D border
    Dim c As PolarChart
    Set c = cd.PolarChart(460, 500, &He0e0e0, &H000000, 1)

    ' Add a title to the chart at the top left corner using 15pt Arial Bold Italic font. Use a wood
    ' pattern as the title background.
    Call c.addTitle("Polar Area Chart Demo", "arialbi.ttf", 15).setBackground(c.patternColor( _
        "wood.png"))

    ' Set center of plot area at (230, 280) with radius 180 pixels, and white (ffffff) background.
    Call c.setPlotArea(230, 280, 180, &Hffffff)

    ' Set the grid style to circular grid
    Call c.setGridStyle(False)

    ' Add a legend box at top-center of plot area (230, 35) using horizontal layout. Use 10pt Arial
    ' Bold font, with 1 pixel 3D border effect.
    Dim b As LegendBox
    Set b = c.addLegend(230, 35, False, "arialbd.ttf", 9)
    Call b.setAlignment(cd.TopCenter)
    Call b.setBackground(cd.Transparent, cd.Transparent, 1)

    ' Set angular axis using the given labels
    Call c.angularAxis().setLabels(labels)

    ' Specify the label format for the radial axis
    Call c.radialAxis().setLabelFormat("{value}%")

    ' Set radial axis label background to semi-transparent grey (40cccccc)
    Call c.radialAxis().setLabelStyle().setBackground(&H40cccccc, 0)

    ' Add the data as area layers
    Call c.addAreaLayer(data2, -1, "5 m/s or above")
    Call c.addAreaLayer(data1, -1, "1 - 5 m/s")
    Call c.addAreaLayer(data0, -1, "less than 1 m/s")

    ' Output the chart
    Set viewer.Picture = c.makePicture()

    'include tool tip for the chart
    viewer.ImageMap = c.getHTMLImageMap("clickable", "", _
        "title='[{label}] {dataSetName}: {value}%'")

End Sub