pChart 2.x forum
http://wiki.pchart.net/forum/

Label overlap with chart, dynamic label height
http://wiki.pchart.net/forum/viewtopic.php?f=3&t=2262
Page 1 of 1

Author:  fliper333 [ Mon Nov 28, 2011 4:23 am ]
Post subject:  Label overlap with chart, dynamic label height

Hello,

I was using pChart v1 for a long time. I found there is also v2 available recently, so I'm trying to switch to this new version, but i have some problems with chart rendering.

1. Labels are overlaping with chart, when they're rotated in 45 angle. I was looking for parameter like margin (either chart bottom or label top) to move labels little down, but unsuccessfull. Is there

2. Is there a way, how to dynamically resize label (or chart) area? I'm using names as labels and sometimes the name is longer and doesn't fit in the chart. I can make pImage larger, but then it looks strange when there is a lot of space at the bottom (in case of shorter names).

Here's example:
Image

Code:
<?php
include("class/pData.class.php");
include("class/pDraw.class.php");
include("class/pImage.class.php");

$myData = new pData();
$myData->addPoints(array(80,44,41,38,61,20,25,16),"Serie1");
$myData->setSerieDescription("Serie1","Serie 1");
$myData->setSerieOnAxis("Serie1",0);

$myData->addPoints(array("Nysam, Dandra","Hat-yerond, Logedi","Lorad, Dranal","Zodar, Chagha","Nail, Anuach","Tradckrod, Ustvoro","Entur, Attano","Ackehon, Therlny Ranrak Danelt"),"Absissa");
$myData->setAbscissa("Absissa");

$myData->setAxisPosition(0,AXIS_POSITION_LEFT);
$myData->setAxisName(0,"Productivity");
$myData->setAxisUnit(0,"");

$myPicture = new pImage(700,300,$myData);
$Settings = array("R"=>170, "G"=>183, "B"=>87, "Dash"=>1, "DashR"=>190, "DashG"=>203, "DashB"=>107);
$myPicture->drawFilledRectangle(0,0,700,300,$Settings);

$Settings = array("StartR"=>219, "StartG"=>231, "StartB"=>139, "EndR"=>1, "EndG"=>138, "EndB"=>68, "Alpha"=>50);
$myPicture->drawGradientArea(0,0,700,300,DIRECTION_VERTICAL,$Settings);

$myPicture->drawRectangle(0,0,699,299,array("R"=>0,"G"=>0,"B"=>0));

$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>50,"G"=>50,"B"=>50,"Alpha"=>20));

$myPicture->setShadow(FALSE);
$myPicture->setGraphArea(50,50,675,220);
$myPicture->setFontProperties(array("R"=>0,"G"=>0,"B"=>0,"FontName"=>"fonts/Bedizen.ttf","FontSize"=>8));

$Settings = array("Pos"=>SCALE_POS_LEFTRIGHT
, "Mode"=>SCALE_MODE_FLOATING
, "LabelingMethod"=>LABELING_ALL
, "GridR"=>255, "GridG"=>255, "GridB"=>255, "GridAlpha"=>50, "TickR"=>0, "TickG"=>0, "TickB"=>0, "TickAlpha"=>50, "LabelRotation"=>45, "CycleBackground"=>1, "DrawXLines"=>1, "DrawSubTicks"=>1, "SubTickR"=>255, "SubTickG"=>0, "SubTickB"=>0, "SubTickAlpha"=>50, "DrawYLines"=>ALL);
$myPicture->drawScale($Settings);

$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>50,"G"=>50,"B"=>50,"Alpha"=>10));

$Config = array("DisplayValues"=>1, "Gradient"=>1, "AroundZero"=>1);
$myPicture->drawBarChart($Config);

$Config = array("R"=>0, "G"=>0, "B"=>0, "Alpha"=>50, "AxisID"=>0, "Ticks"=>4, "WriteCaption"=>1, "Caption"=>"Average", "DrawBox"=>1);
$myPicture->drawThreshold(40,$Config);

$myPicture->stroke();
?>


Thank you in advance for all advices!

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/