in reply to perl bar graph

poss:

I tried your example (including the lines you left out) and see the difference between the two graphs. However, I can't figure out what you mean when you ask "How do I get the values to follow the bars?" Care to elaborate?

In the future, you'll get better answers if you make your code function so people can try it without having to finish and/or debug it. (The only reason I bothered is that I need to generate some bar charts for my current project at work.)

A working example, if anyone is interested:

#!/usr/bin/env perl use strict; use warnings; use GD::Graph; use GD::Graph::bars; my @data = ( [ 'Windows', 'Linux', 'Solaris' ], # Swap the next two lines to switch versions of the graph [ 150, 250, 350 ], [ 100, 200, 300 ], ); my $x_Label = "XLabel"; my $Graph_Title = "Graph Title"; my $graph = new GD::Graph::bars(900,600); $graph->set( x_label => $x_Label, x_label_position => 1/4, x_label_vertical => 1, y_label => 'Minutes', y_max_value => 300, y_tick_number => 10, title => $Graph_Title, bar_width => 35, cumulate => 1, dclrs => [ 'blue','cyan' ], bgclr => 'white', fgclr => 'lred', values_vertical => 0, valuesclr => 'black', accentclr => 'red', shadowclr => '#F7E7CE', shadow_depth => 0, legendclr => 'blue', show_values => 1 ); my $gd = $graph->plot(\@data) or die $graph->error; open my $IMG, '>', 'file2.png' or die $!; binmode $IMG; print $IMG $gd->png;

...roboticus

When your only tool is a hammer, all problems look like your thumb.

Replies are listed 'Best First'.
Re^2: perl bar graph
by poss (Initiate) on Feb 27, 2015 at 18:33 UTC
    Thanks robitcus for your prompt reply. I appreciate. I will use your example, since you already have the example working. Your comment says.
    my @data = ( [ 'Windows', 'Linux', 'Solaris' ], # Swap the next two lines to switch versions of the graph [ 150, 250, 350 ], [ 100, 200, 300 ], );
    This show exactly what I am trying to resolve. By switching
    [ 150, 250, 350 ], [ 100, 200, 300 ],
    to
    [ 100, 200, 300 ], [ 150, 250, 350 ],

    Does indeed swap the stacked bars, however the values do not follow the bars. So, stacked bar 1 has values
    100 for bottom bar 150 for top bar. If I swap them, the vales 100,150 remain and do not follow the bars it should be referencing.
    I may not be understand perl and/or Graphs as I am very new to this. Thanks for any pointers you can provide.
    Poss

      poss:

      Sorry for the delay in replying, but I had to wait until I got back to my work computer to review the code & figures.

      Anyway, when you say "the values do not follow the bars", do you mean that the numbers aren't shown immediately above each bar? When I run it, the values seem to follow nicely. If your numbers are appearing elsewhere, or aren't changing positions with the tops of the bars, then I'd have to guess that there are some module/library version differences going on.

      ...roboticus

      When your only tool is a hammer, all problems look like your thumb.

        Hi roboticus
        Yes that is indeed what I am saying
        For my data points
        my @data = (
        'Windows', 'Linux', 'Solaris' ,
        # Swap the next two lines to switch versions of the graph
        150, 250, 350 ,
        100, 200, 300 ,
        # 100, 200, 300 ,
        # 150, 250, 350 , );
        By uncommenting one or the other <above>, the bar color sizes do update properly, but the numbers are ALWAYS
        150, 250, 350
        on the top bar and
        100, 200, 300
        on the bottom bars.
        Weird
        I am using perl, v5.8.2 built for sun4-solaris if that is any help.
        Other than that I am using your exact example.
        Thanks
        Paul