ChartDirector Ver 3.0 (Python Edition)

Dual X-Axis




This example illustrates the following ChartDirector features:

Source Code Listing

[File: pythondemo/dualxaxis.py] (The CGI version is available as "pythondemo_cgi/dualxaxis.py".)
#!/usr/bin/python from pychartdir import * #The data for the chart data0 = [42, 49, 33, 38, 51, 46, 29, 41, 44, 57, 59, 52, 37, 34, 51, 56, 56, 60, 70, 76, 63, 67, 75, 64, 51] data1 = [50, 55, 47, 34, 42, 49, 63, 62, 73, 59, 56, 50, 64, 60, 67, 67, 58, 59, 73, 77, 84, 82, 80, 84, 98] #The labels for the bottom x axis. Note the "-" means a minor tick. label0 = ["0\nJun 4", "-", "-", "3", "-", "-", "6", "-", "-", "9", "-", "-", "12", "-", "-", "15", "-", "-", "18", "-", "-", "21", "-", "-", "0\nJun 5"] #The labels for the top x axis. Note that "-" means a minor tick. label1 = ["Jun 3\n12", "-", "-", "15", "-", "-", "18", "-", "-", "21", "-", "-", "Jun 4\n0", "-", "-", "3", "-", "-", "6", "-", "-", "9", "-", "-", "12"] #Create a XYChart object of size 310 x 310 pixels c = XYChart(310, 310) #Set the plotarea at (50, 50) and of size 200 x 200 pixels c.setPlotArea(50, 50, 200, 200) #Add a title to the primary (left) y axis c.yAxis().setTitle("US Dollars") #Set the tick length to -4 pixels (-ve means ticks inside the plot area) c.yAxis().setTickLength(-4) #Add a title to the secondary (right) y axis c.yAxis2().setTitle("HK Dollars (1 USD = 7.8 HKD)") #Set the tick length to -4 pixels (-ve means ticks inside the plot area) c.yAxis2().setTickLength(-4) #Synchronize the y-axis such that y2 = 7.8 x y1 c.syncYAxis(7.8) #Add a title to the bottom x axis c.xAxis().setTitle("Hong Kong Time") #Set the x axis labels using the given labels c.xAxis().setLabels(label0) #Set the major tick length to -4 pixels and minor tick length to -2 pixels (-ve #means ticks inside the plot area) c.xAxis().setTickLength2(-4, -2) #Set the distance between the axis labels and the axis to 6 pixels c.xAxis().setLabelGap(6) #Add a title to the top x-axis c.xAxis2().setTitle("New York Time") #Set the x-axis labels using the given labels c.xAxis2().setLabels(label1) #Set the major tick length to -4 pixels and minor tick length to -2 pixels (-ve #means ticks inside the plot area) c.xAxis2().setTickLength2(-4, -2) #Set the distance between the axis labels and the axis to 6 pixels c.xAxis2().setLabelGap(6) #Add a line layer to the chart with a line width of 2 pixels c.addLineLayer(data0, -1, "Server Load").setLineWidth(2) #Add an area layer to the chart with no area boundary line c.addAreaLayer(data1, -1, "Transaction").setLineWidth(0) #output the chart c.makeChart("dualxaxis.png")