ChartDirector Ver 3.0 (Python Edition)

Multi-Bar Chart




A multi-bar chart is a bar chart in which multiple data sets are represented by drawing the bars side by side in a cluster. The multi-bar layer is created by using XYChart.addBarLayer2 with the Side pre-defined constant.

This example employs two alternative colors as the plot area background. This is achieved by using PlotArea.setBackground.

In this example, a margin is configured at the top of the plot area for the legend keys. This is achieved by using Axis.setMargin.

Source Code Listing

[File: pythondemo/multibar.py] (The CGI version is available as "pythondemo_cgi/multibar.py".)
#!/usr/bin/python from pychartdir import * #The data for the bar chart data0 = [100, 125, 245, 147, 67] data1 = [85, 156, 179, 211, 123] data2 = [97, 87, 56, 267, 157] labels = ["Mon", "Tue", "Wed", "Thu", "Fri"] #Create a XYChart object of size 300 x 240 pixels c = XYChart(300, 240) #Add a title to the chart using 10 pt Arial font c.addTitle(" Average Weekday Network Load", "", 10) #Set the plot area at (45, 25) and of size 239 x 180. Use two alternative #background colors (0xffffc0 and 0xffffe0) c.setPlotArea(45, 25, 239, 180).setBackground(0xffffc0, 0xffffe0) #Add a legend box at (45, 20) using horizontal layout. Use 8 pt Arial font, with #transparent background c.addLegend(45, 20, 0, "", 8).setBackground(Transparent) #Add a title to the y-axis c.yAxis().setTitle("Throughput (MBytes Per Hour)") #Reserve 20 pixels at the top of the y-axis for the legend box c.yAxis().setTopMargin(20) #Set the x axis labels c.xAxis().setLabels(labels) #Add a multi-bar layer with 3 data sets layer = c.addBarLayer2(Side, 3) layer.addDataSet(data0, 0xff8080, "Server #1") layer.addDataSet(data1, 0x80ff80, "Server #2") layer.addDataSet(data2, 0x8080ff, "Server #3") #output the chart c.makeChart("multibar.png")