ChartDirector 7.0 (ASP/COM/VB Edition)

Polar Line Chart




This example demonstrates a polar line chart, completed with data symbols and data labels.

Source Code Listing

[Web Version (in ASP)] aspdemo\polarline.asp
<%@ language="vbscript" %> <% Set cd = CreateObject("ChartDirector.API") ' The data for the chart data0 = Array(90, 25, 40, 55, 68, 44, 79, 85, 50) angles0 = Array(15, 60, 110, 180, 230, 260, 260, 310, 340) data1 = Array(80, 91, 66, 80, 92, 87) angles1 = Array(40, 65, 88, 110, 150, 200) ' 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 Line Chart Demo", "Arial Bold Italic", 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, with grids below the chart layers Call c.setGridStyle(False, 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, "Arial Bold", 9) Call b.setAlignment(cd.TopCenter) Call b.setBackground(cd.Transparent, cd.Transparent, 1) ' Set angular axis as 0 - 360, with a spoke every 30 units Call c.angularAxis().setLinearScale(0, 360, 30) ' Add a blue (0xff) line layer to the chart using (data0, angle0) Set layer0 = c.addLineLayer(data0, &H0000ff, "Close Loop Line") Call layer0.setAngles(angles0) ' Set the line width to 2 pixels Call layer0.setLineWidth(2) ' Use 11 pixel triangle symbols for the data points Call layer0.setDataSymbol(cd.TriangleSymbol, 11) ' Enable data label and set its format Call layer0.setDataLabelFormat("({value},{angle})") ' Set the data label text box with light blue (0x9999ff) backgruond color and 1 pixel 3D border ' effect Call layer0.setDataLabelStyle().setBackground(&H9999ff, cd.Transparent, 1) ' Add a red (0xff0000) line layer to the chart using (data1, angle1) Set layer1 = c.addLineLayer(data1, &Hff0000, "Open Loop Line") Call layer1.setAngles(angles1) ' Set the line width to 2 pixels Call layer1.setLineWidth(2) ' Use 11 pixel diamond symbols for the data points Call layer1.setDataSymbol(cd.DiamondSymbol, 11) ' Set the line to open loop Call layer1.setCloseLoop(False) ' Enable data label and set its format Call layer1.setDataLabelFormat("({value},{angle})") ' Set the data label text box with light red (0xff9999) backgruond color and 1 pixel 3D border ' effect Call layer1.setDataLabelStyle().setBackground(&Hff9999, cd.Transparent, 1) ' Output the chart Set viewer = cd.WebChartViewer(Request, "chart1") Call viewer.setChart(c, cd.SVG) ' Include tool tip for the chart viewer.ImageMap = c.getHTMLImageMap("", "", "title='[{dataSetName}] ({radius}, {angle})'") %> <!DOCTYPE html> <html> <head> <title>Polar Line Chart</title> <!-- Include ChartDirector Javascript Library to support chart interactions --> <script type="text/javascript" src="cdjcv.js"></script> </head> <body style="margin:5px 0px 0px 5px"> <div style="font:bold 18pt verdana;"> Polar Line Chart </div> <hr style="border:solid 1px #000080; background:#000080" /> <div style="font:10pt verdana; margin-bottom:1.5em"> <a href="viewsource.asp?file=<%= Request("SCRIPT_NAME") %>">View Chart Source Code</a> </div> <!-- ****** Here is the chart image ****** --> <%= viewer.renderHTML() %> </body> </html>

[Windows Version (in Visual Basic)] vbdemo\polarline.cls
Public Sub createChart(viewer As Object, chartIndex As Integer) Dim cd As New ChartDirector.API ' The data for the chart Dim data0() data0 = Array(90, 25, 40, 55, 68, 44, 79, 85, 50) Dim angles0() angles0 = Array(15, 60, 110, 180, 230, 260, 260, 310, 340) Dim data1() data1 = Array(80, 91, 66, 80, 92, 87) Dim angles1() angles1 = Array(40, 65, 88, 110, 150, 200) ' 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 Line 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, with grids below the chart layers Call c.setGridStyle(False, 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 as 0 - 360, with a spoke every 30 units Call c.angularAxis().setLinearScale(0, 360, 30) ' Add a blue (0xff) line layer to the chart using (data0, angle0) Dim layer0 As PolarLineLayer Set layer0 = c.addLineLayer(data0, &H0000ff, "Close Loop Line") Call layer0.setAngles(angles0) ' Set the line width to 2 pixels Call layer0.setLineWidth(2) ' Use 11 pixel triangle symbols for the data points Call layer0.setDataSymbol(cd.TriangleSymbol, 11) ' Enable data label and set its format Call layer0.setDataLabelFormat("({value},{angle})") ' Set the data label text box with light blue (0x9999ff) backgruond color and 1 pixel 3D border ' effect Call layer0.setDataLabelStyle().setBackground(&H9999ff, cd.Transparent, 1) ' Add a red (0xff0000) line layer to the chart using (data1, angle1) Dim layer1 As PolarLineLayer Set layer1 = c.addLineLayer(data1, &Hff0000, "Open Loop Line") Call layer1.setAngles(angles1) ' Set the line width to 2 pixels Call layer1.setLineWidth(2) ' Use 11 pixel diamond symbols for the data points Call layer1.setDataSymbol(cd.DiamondSymbol, 11) ' Set the line to open loop Call layer1.setCloseLoop(False) ' Enable data label and set its format Call layer1.setDataLabelFormat("({value},{angle})") ' Set the data label text box with light red (0xff9999) backgruond color and 1 pixel 3D border ' effect Call layer1.setDataLabelStyle().setBackground(&Hff9999, cd.Transparent, 1) ' Output the chart Set viewer.Picture = c.makePicture() 'include tool tip for the chart viewer.ImageMap = c.getHTMLImageMap("clickable", "", _ "title='[{dataSetName}] ({radius}, {angle})'") End Sub