Vertical Bar Graphs
Have a look at the following examples to see how you can create your own graphs:
Example #1
The most simple graph looks like this:
graph = graphs.BarGraph('vBar')
graph.values = [380, 150, 260, 310, 430]
print graph.create()
|
Example #2
Now let's add some labels and titles:
graph = graphs.BarGraph('vBar')
graph.values = [380, 150, 260, 310, 430]
graph.labels = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May']
graph.titles = ['Month', 'Sales']
print graph.create()
Sales | | | | | | Month | Jan. | Feb. | Mar. | Apr. | May |
|
|
Example #3
It's also possible to create grouped bar graphs for comparison.
Put grouped values into tuples and add a legend:
graph = graphs.BarGraph('vBar')
graph.labels = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May']
graph.titles = ['Month', 'Sales']
graph.values = [(380, 420), (150, 340), (260, 120), (310, 250), (430, 370)]
graph.legend = ['2001', '2002']
print graph.create()
Sales | | | | | | | | | | | Month | Jan. | Feb. | Mar. | Apr. | May |
| | |
|
|
Example #4
Let's change some colors and show the values:
graph = graphs.BarGraph('vBar')
graph.labels = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May']
graph.titles = ['Month', 'Sales', 'Percent']
graph.values = [(380, 420), (150, 340), (260, 120), (310, 250), (430, 370)]
graph.legend = ['2001', '2002']
graph.graphBGColor = '#B0E0B0'
graph.graphBorder = '1px solid green'
graph.graphPadding = 10
graph.titleColor = 'yellow'
graph.titleBGColor = '#60C060'
graph.barColors = ['#C0D0C0', '#80D080']
graph.barBGColor = '#D0F0D0'
graph.labelColor = 'yellow'
graph.labelBGColor = '#60C060'
graph.absValuesColor = '#008000'
graph.absValuesBGColor = '#D0F0D0'
graph.percValuesColor = '#008000'
graph.legendColor = '#008000'
graph.legendBGColor = '#D0F0D0'
graph.legendAbsValues = 1
graph.showValues = 1
print graph.create()
Percent | | | | | | | | | | | Sales | 380 | 420 | 150 | 340 | 260 | 120 | 310 | 250 | 430 | 370 | Month | Jan. | Feb. | Mar. | Apr. | May |
| | |
|
|
Example #5
Bar width (pixels), length (ratio) and border (CSS-spec) are also changable.
By the way, BarGraph also supports floating point numbers and negative values:
graph = graphs.BarGraph('vBar')
graph.labels = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May']
graph.barColors = 'white'
graph.showValues = 1
graph.values = [0.38, -0.15, -0.26, 0.31, 0.43]
graph.percValuesDecimals = 2
graph.barWidth = 40
graph.barLength = 1.5
graph.barBorder = '2px solid red'
print graph.create()
| | | | | 0.38 | -0.15 | -0.26 | 0.31 | 0.43 | Jan. | Feb. | Mar. | Apr. | May |
|
|
Example #6
For large amounts of values, it may be useful to split them into several charts:
graph = graphs.BarGraph('vBar')
graph.values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
graph.labelBGColor = '#C0C0F0'
graph.barBGColor = '#E0E0F0'
graph.charts = 2
print graph.create()
| | | | | | | | | | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
|
|
|
Example #7
It is possible to set extra colors for bars whose value exceeds certain levels:
graph = graphs.BarGraph('vBar')
graph.values = [380, 150, 260, 310, 430]
graph.showValues = 1
graph.barLevelColors = [1, 'red', 260, 'yellow', 380, 'lightgreen']
print graph.create()
| | | | | 380 | 150 | 260 | 310 | 430 | 1 | 2 | 3 | 4 | 5 |
|
NOTE: All level-color-pairs should be written in ascending order, and of course this
feature is not suited for grouped bars.
You can also use the keyword MAX for setting the color of the bar with the highest value:
graph = graphs.BarGraph('vBar')
graph.values = [380, 150, 260, 310, 430]
graph.showValues = 1
graph.barLevelColors = [1, '#C0C0FF', 300, '#8080FF', 'MAX', '#4040FF']
print graph.create()
| | | | | 380 | 150 | 260 | 310 | 430 | 1 | 2 | 3 | 4 | 5 |
|
|
Example #8
Let's do some more design changes and add a prefix to the values:
graph = graphs.BarGraph('vBar')
graph.values = [380, 150, 260, 310, 430]
graph.labels = ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May']
graph.showValues = 1
graph.barColors = '#E0E0E0'
graph.barBGColor = 'white'
graph.barBorder = '1px solid #808080'
graph.labelColor = '#A0A0A0'
graph.labelBGColor = ''
graph.labelBorder = '1px dashed #A0A0A0'
graph.labelFont = 'Arial Black, Arial, Helvetica'
graph.labelSize = 16
graph.absValuesColor = 'silver'
graph.absValuesBGColor = 'white'
graph.absValuesBorder = '1px solid silver'
graph.absValuesFont = 'Verdana, Arial, Helvetica'
graph.absValuesSize = 14
graph.absValuesPrefix = '€'
graph.percValuesColor = '#C0C0C0'
graph.percValuesFont = 'Comic Sans MS, Times New Roman'
graph.percValuesSize = 16
print graph.create()
| | | | | €380 | €150 | €260 | €310 | €430 | Jan. | Feb. | Mar. | Apr. | May |
|
|
Example #9
You can also use images (PNG, JPG or GIF) instead of bar colors, and add some
space between labels:
graph = graphs.BarGraph('vBar')
graph.values = [(50, 30, 40), (60, 80, 50), (70, 40, 60)]
graph.labels = ['Jan.', 'Feb.', 'Mar.']
graph.legend = ['cats', 'dogs', 'birds']
graph.barColors = ['blue.gif', 'red.gif', 'green.gif']
graph.labelSpace = 10
print graph.create()
NOTE: Images are not included in this package.
|
Example #10
Sometimes you have very similar values, like for instance 1000, 1010, 1020. The difference between them
is too small to view in a graph:
graph = graphs.BarGraph('vBar')
graph.values = [1010, 1020, 1030]
graph.showValues = 1
print graph.create()
In this case you can tweak the bar length by using the baseValue variable. Please note that not
only the bar length, but also the percentage changes accordingly:
graph = graphs.BarGraph('vBar')
graph.values = [1010, 1020, 1030]
graph.baseValue = 1000
graph.showValues = 1
print graph.create()
|
Comments
|
|