Subject: | Fixed multi-bar graphs to be properly displayed as stacked graphs |
A fix for Bar.pm to properly display a stacked graph when given multiple
data sets.
Subject: | stacked_bar-Bar.pm.patch |
4a5,6
> use vars qw($VERSION);
> $VERSION = '0.09';
63d64
< 'max_scale_value' => undef,
175,179d175
< =item max_scale_value()
<
< The maximum value for the Y axis. If set to '', it will
< default to the maximum data value.
<
331d326
< 'max_scale_value' => '',
576a572
> [% max_y_value = 0 %]
578,583c574,576
< [% IF min_value > dataset.data.$field && dataset.data.$field != '' %]
< [% min_value = dataset.data.$field %]
< [% END %]
< [% IF max_value < dataset.data.$field && dataset.data.$field != '' %]
< [% max_value = dataset.data.$field %]
< [% END %]
---
> [% IF dataset.data.$field != '' %]
> [% max_y_value = max_y_value + dataset.data.$field %]
> [% END %]
587a581,587
>
> [% IF min_value > max_y_value %]
> [% min_value = max_y_value %]
> [% END %]
> [% IF max_value < max_y_value %]
> [% max_value = max_y_value %]
> [% END %] -->
641,648d640
< <!-- find ending value for scale on y axis -->
< [% IF config.max_scale_value || config.max_scale_value == '0' %]
< [% max_scale_value = config.max_scale_value %]
< [% ELSE %]
< <!-- setting highest value to be max_value as no max_scale_value defined -->
< [% max_scale_value = max_value %]
< [% END %]
<
653c645
< [% IF (max_scale_value - min_scale_value) == 0 %]
---
> [% IF (max_value - min_scale_value) == 0 %]
656c648
< [% top_pad = (max_scale_value - min_scale_value) / 20 %]
---
> [% top_pad = (max_value - min_scale_value) / 20 %]
659c651
< [% scale_range = (max_scale_value + top_pad) - min_scale_value %]
---
> [% scale_range = (max_value + top_pad) - min_scale_value %]
839a832
> [% start_x = base_line %]
841c834
< <path d="M[% (dw * xcount) + x %] [% base_line %] V[% base_line - (dataset.data.$field * divider) %] h[% bar_width %] V[% base_line %] Z" class="fill[% dcount %]"/>
---
> <path d="M[% (dw * xcount) + x %] [% start_x %] V[% start_x - (dataset.data.$field * divider) %] h[% bar_width %] V[% start_x %] Z" class="fill[% dcount %]"/>
843c836
< <text x="[% (dw * xcount) + x + (dw / 2) - (bar_gap / 2) %]" y="[% base_line - (dataset.data.$field * divider) - 6 %]" class="dataPointLabel">[% dataset.data.$field %]</text>
---
> <text x="[% (dw * xcount) + x + (dw / 2) - (bar_gap / 2) %]" y="[% start_x - (dataset.data.$field * divider) - 6 %]" class="dataPointLabel">[% dataset.data.$field %]</text>
844a838
> [% start_x = start_x - (dataset.data.$field * divider) %]