2011-04-18 Sergio Martin <sergio.martin@artica.es>
* include/graphs/functions_pchart.php include/graphs/functions_fsgraph.php include/graphs/fgraph.php: Fixed bar graphs margins Fixed horizontal flash bar git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4234 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
2f16fc02ca
commit
4a0f467d0e
|
@ -1,3 +1,10 @@
|
||||||
|
2011-04-18 Sergio Martin <sergio.martin@artica.es>
|
||||||
|
|
||||||
|
* include/graphs/functions_pchart.php
|
||||||
|
include/graphs/functions_fsgraph.php
|
||||||
|
include/graphs/fgraph.php: Fixed bar graphs margins
|
||||||
|
Fixed horizontal flash bar
|
||||||
|
|
||||||
2011-04-18 Sergio Martin <sergio.martin@artica.es>
|
2011-04-18 Sergio Martin <sergio.martin@artica.es>
|
||||||
|
|
||||||
* include/graphs/functions_pchart.php
|
* include/graphs/functions_pchart.php
|
||||||
|
|
|
@ -265,7 +265,7 @@ function polar_graph($flash_chart, $chart_data, $width, $height, $no_data_image)
|
||||||
function hbar_graph($flash_chart, $chart_data, $width, $height, $color = array(),
|
function hbar_graph($flash_chart, $chart_data, $width, $height, $color = array(),
|
||||||
$legend = array(), $xaxisname = "", $yaxisname = "", $force_height = true, $homedir="") {
|
$legend = array(), $xaxisname = "", $yaxisname = "", $force_height = true, $homedir="") {
|
||||||
if($flash_chart) {
|
if($flash_chart) {
|
||||||
echo fs_hbar_chart (array_values($chart_data), array_keys($chart_data), $width, $height);
|
echo fs_2d_hcolumn_chart ($chart_data, $width, $height);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$graph = array();
|
$graph = array();
|
||||||
|
|
|
@ -518,26 +518,6 @@ function fs_2d_pie_chart ($data, $names, $width, $height, $background = "EEEEEE"
|
||||||
return get_chart_code2 ($chart, $width, $height, 'include/graphs/FusionCharts/FCF_Pie2D.swf');
|
return get_chart_code2 ($chart, $width, $height, 'include/graphs/FusionCharts/FCF_Pie2D.swf');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prints a BAR Horizontalchart
|
|
||||||
function fs_hbar_chart ($data, $names, $width, $height) {
|
|
||||||
if (sizeof ($data) != sizeof ($names)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate the XML
|
|
||||||
$chart = new FusionCharts("Bar2D", $width, $height);
|
|
||||||
$chart->setSWFPath("include/graphs/FusionCharts/");
|
|
||||||
$params="showNames=1;showValues=0;showPercentageValues=0;baseFontSize=9;rotateNames=1;chartLeftMargin=0;chartRightMargin=0;chartBottomMargin=0;chartTopMargin=0;showBarShadow=1;showLimits=1";
|
|
||||||
$chart->setChartParams($params);
|
|
||||||
|
|
||||||
for ($i = 0; $i < sizeof ($data); $i++) {
|
|
||||||
$chart->addChartData($data[$i], 'name=' . clean_flash_string($names[$i]));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return the code
|
|
||||||
return get_chart_code2 ($chart, $width, $height, 'include/graphs/FusionCharts/FCF_Bar2D.swf');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns a 2D column chart
|
// Returns a 2D column chart
|
||||||
function fs_2d_column_chart ($data, $width, $height) {
|
function fs_2d_column_chart ($data, $width, $height) {
|
||||||
if (sizeof ($data) == 0) {
|
if (sizeof ($data) == 0) {
|
||||||
|
@ -613,6 +593,82 @@ function fs_2d_column_chart ($data, $width, $height) {
|
||||||
return get_chart_code ($chart, $width, $height, 'include/graphs/FusionCharts/FCF_Column2D.swf');
|
return get_chart_code ($chart, $width, $height, 'include/graphs/FusionCharts/FCF_Column2D.swf');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Returns a BAR Horizontalchart
|
||||||
|
function fs_2d_hcolumn_chart ($data, $width, $height) {
|
||||||
|
if (sizeof ($data) == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate the XML
|
||||||
|
$chart = new FusionCharts('Bar2D', $width, $height);
|
||||||
|
|
||||||
|
$pixels_between_xdata = 25;
|
||||||
|
$max_xdata_display = round($width / $pixels_between_xdata);
|
||||||
|
$ndata = count($data);
|
||||||
|
if($max_xdata_display > $ndata) {
|
||||||
|
$xdata_display = $ndata;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$xdata_display = $max_xdata_display;
|
||||||
|
}
|
||||||
|
|
||||||
|
$step = round($ndata/$xdata_display);
|
||||||
|
|
||||||
|
|
||||||
|
if(is_array(reset($data))) {
|
||||||
|
$data2 = array();
|
||||||
|
$count = 0;
|
||||||
|
foreach($data as $i =>$values) {
|
||||||
|
$count++;
|
||||||
|
$show_name = '0';
|
||||||
|
if (($count % $step) == 0) {
|
||||||
|
$show_name = '1';
|
||||||
|
}
|
||||||
|
|
||||||
|
$chart->addCategory($i, //'');
|
||||||
|
'hoverText=' . $i .
|
||||||
|
';showName=' . $show_name);
|
||||||
|
|
||||||
|
$c = 0;
|
||||||
|
foreach($values as $i2 => $value) {
|
||||||
|
$data2[$i2][$i] = $value;
|
||||||
|
$c++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$data = $data2;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data = array($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
$empty = 0;
|
||||||
|
$num_vlines = 0;
|
||||||
|
$count = 0;
|
||||||
|
|
||||||
|
foreach ($data as $legend_value => $values) {
|
||||||
|
|
||||||
|
foreach($values as $name => $value) {
|
||||||
|
if (($count++ % $step) == 0) {
|
||||||
|
$show_name = '1';
|
||||||
|
$num_vlines++;
|
||||||
|
} else {
|
||||||
|
$show_name = '0';
|
||||||
|
}
|
||||||
|
if ($value > 0) {
|
||||||
|
$empty = 0;
|
||||||
|
}
|
||||||
|
$chart->addChartData($value, 'name=' . clean_flash_string($name) . ';showName=' . $show_name/* . ';color=95BB04'*/);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$params='showNames=1;showValues=0;showPercentageValues=0;baseFontSize=9;rotateNames=1;chartLeftMargin=0;chartRightMargin=0;chartBottomMargin=0;chartTopMargin=0;showBarShadow=1;showLimits=1';
|
||||||
|
|
||||||
|
$chart->setChartParams($params.';numVDivLines='.$num_vlines.($empty == 1 ? ';yAxisMinValue=0;yAxisMaxValue=1' : ''));
|
||||||
|
|
||||||
|
// Return the code
|
||||||
|
return get_chart_code ($chart, $width, $height, 'include/graphs/FusionCharts/FCF_Bar2D.swf');
|
||||||
|
}
|
||||||
|
|
||||||
// Returns a 3D column chart
|
// Returns a 3D column chart
|
||||||
function fs_3d_column_chart ($data, $width, $height) {
|
function fs_3d_column_chart ($data, $width, $height) {
|
||||||
if (sizeof ($data) == 0) {
|
if (sizeof ($data) == 0) {
|
||||||
|
|
|
@ -484,43 +484,36 @@ function pch_bar_graph ($graph_type, $index, $data, $width, $height, $font, $ant
|
||||||
/* Draw the scale */
|
/* Draw the scale */
|
||||||
// TODO: AvoidTickWhenEmpty = FALSE When the distance between two ticks will be less than 50 px
|
// TODO: AvoidTickWhenEmpty = FALSE When the distance between two ticks will be less than 50 px
|
||||||
// TODO: AvoidTickWhenEmpty = TRUE When the distance between two ticks will be greater than 50 px
|
// TODO: AvoidTickWhenEmpty = TRUE When the distance between two ticks will be greater than 50 px
|
||||||
switch($graph_type) {
|
|
||||||
case "vbar":
|
|
||||||
$scaleSettings = array("AvoidTickWhenEmpty" => FALSE, "AvoidGridWhenEmpty" => FALSE, "GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE, "Mode"=>SCALE_MODE_START0, "LabelRotation" => 60);
|
|
||||||
$leftmargin = 40;
|
|
||||||
break;
|
|
||||||
case "hbar":
|
|
||||||
$scaleSettings = array("GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE, "Mode"=>SCALE_MODE_START0, "Pos"=>SCALE_POS_TOPBOTTOM, "LabelValuesRotation" => 60);
|
|
||||||
|
|
||||||
//Calculate the bottom margin from the size of string in each index
|
|
||||||
$max_chars = 0;
|
|
||||||
foreach ($index as $string_index) {
|
|
||||||
if (empty($string_index)) continue;
|
|
||||||
|
|
||||||
$len = strlen($string_index);
|
|
||||||
if ($len > $max_chars) {
|
|
||||||
$max_chars = $len;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$leftmargin = 5 * $max_chars;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Calculate the top margin from the size of string in each index
|
//Calculate the top margin from the size of string in each index
|
||||||
$max_chars = 0;
|
$max_chars = 0;
|
||||||
foreach ($index as $string_index) {
|
foreach ($index as $string_index) {
|
||||||
if (empty($string_index)) continue;
|
if (empty($string_index)) continue;
|
||||||
|
|
||||||
$len = strlen($string_index);
|
$len = strlen($string_index);
|
||||||
if ($len > $max_chars) {
|
if ($len > $max_chars) {
|
||||||
$max_chars = $len;
|
$max_chars = $len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$margin_top = 10 * $max_chars;
|
$margin_top = 10 * $max_chars;
|
||||||
|
|
||||||
|
switch($graph_type) {
|
||||||
|
case "vbar":
|
||||||
|
$scaleSettings = array("AvoidTickWhenEmpty" => FALSE, "AvoidGridWhenEmpty" => FALSE, "GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE, "Mode"=>SCALE_MODE_START0, "LabelRotation" => 60);
|
||||||
|
$margin_left = 40;
|
||||||
|
$margin_top = 10;
|
||||||
|
$margin_bottom = 8 * $max_chars;
|
||||||
|
break;
|
||||||
|
case "hbar":
|
||||||
|
$scaleSettings = array("GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE, "Mode"=>SCALE_MODE_START0, "Pos"=>SCALE_POS_TOPBOTTOM, "LabelValuesRotation" => 60);
|
||||||
|
$margin_left = 5 * $max_chars;
|
||||||
|
$margin_top = 40;
|
||||||
|
$margin_bottom = 10;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/* Define the chart area */
|
/* Define the chart area */
|
||||||
$myPicture->setGraphArea($leftmargin,$margin_top,$width,$height-80);
|
$myPicture->setGraphArea($margin_left,$margin_top,$width,$height-$margin_bottom);
|
||||||
|
|
||||||
$myPicture->drawScale($scaleSettings);
|
$myPicture->drawScale($scaleSettings);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue