Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jpgraph wont change colors on my barplot

Tags:

php

jpgraph

I'm just getting started with jpgraph and XAMPP I was looking to make a barplot. As I was reading some articles on the web it said you could pass in an array of colors to setfillcolor so that each bar would be a different color. However whenever I pass it color the graph won't change from its default color of light blue.

The graph respond s to changes in data but not changes to color. I tried with an accumulated bar graph example and that seems to be color responsive.

I'm not sure how to diagnose a problem like this. Help please!

Code Below(Example from the Jpgraph documentation with color changed from orange to #B0C4DE [orange from the original example doesn't show up]):

<?php // content="text/plain; charset=utf-8"
require_once(dirname(__FILE__)."\lib\jpgraph-3.5.0b1\src\jpgraph.php");
require_once(dirname(__FILE__)."\lib\jpgraph-3.5.0b1\src\jpgraph_line.php");
require_once(dirname(__FILE__)."\lib\jpgraph-3.5.0b1\src\jpgraph_bar.php");

$datay=array(2,3,5,25,15,6,3);
$datax=array('Jan','Feb','Mar','Apr','May','Jun','Jul');

// Size of graph
$width=400;
$height=500;

// Set the basic parameters of the graph
$graph = new Graph($width,$height,'auto');
$graph->SetScale('textlin');

// Rotate graph 90 degrees and set margin
$graph->Set90AndMargin(50,20,50,30);

// Nice shadow
$graph->SetShadow();

// Setup title
$graph->title->Set('Horizontal bar graph ex 1');
$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);

// Setup X-axis
$graph->xaxis->SetTickLabels($datax);
$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,12);

// Some extra margin looks nicer
$graph->xaxis->SetLabelMargin(10);

// Label align for X-axis
$graph->xaxis->SetLabelAlign('right','center');

// Add some grace to y-axis so the bars doesn't go
// all the way to the end of the plot area
$graph->yaxis->scale->SetGrace(20);

// We don't want to display Y-axis
$graph->yaxis->Hide();

// Now create a bar pot
$bplot = new BarPlot($datay);

$bplot->SetFillColor("#B0C4DE");
//  ALSO tried:
//  $bplot->SetColor(array("red","green","blue","gray"));
$bplot->SetShadow();

//You can change the width of the bars if you like
//$bplot->SetWidth(0.5);

// We want to display the value of each bar at the top
$bplot->value->Show();
$bplot->value->SetFont(FF_ARIAL,FS_BOLD,12);
$bplot->value->SetAlign('left','center');
$bplot->value->SetColor('black','darkred');
$bplot->value->SetFormat('%.1f mkr');

// Add the bar to the graph
$graph->Add($bplot);

// .. and stroke the graph
$graph->Stroke();
?>
like image 427
Zigu Avatar asked Aug 08 '11 23:08

Zigu


People also ask

How do I change the color of my barplot?

You can change the color of bars in a barplot using color argument. RGB is a way of making colors. You have to to provide an amount of red, green, blue, and the transparency value to the color argument and it returns a color.

How do I change the color of a barplot in R?

R barplot() – Set Colors for Bars in Bar Plot To set colors for bars in Bar Plot drawn using barplot() function, pass the required color value(s) for col parameter in the function call. col parameter can accept a single value for color, or a vector of color values to set color(s) for bars in the bar plot.


2 Answers

I had the same problem, the solution I found is to define the formatting after the BarPlot class initialization

$bplot = new BarPlot($datay);
$graph->Add($bplot);
$bplot->value->Show();
$bplot->value->SetFont(FF_ARIAL,FS_BOLD,12);
$bplot->value->SetAlign('left','center');
$bplot->value->SetColor('black','darkred');
$bplot->value->SetFormat('%.1f mkr');

Solution found here

like image 146
Pierre de LESPINAY Avatar answered Oct 05 '22 17:10

Pierre de LESPINAY


I have the same problem, and this is my solution: just add "ClearTheme()",like this:

     $graph = new Graph(310,200); 
     $graph->ClearTheme();    
like image 20
wlwk Avatar answered Oct 05 '22 19:10

wlwk