Adrielpin / gchartphp

Automatically exported from code.google.com/p/gchartphp
0 stars 0 forks source link

Axis Label Positions #20

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. create a gBarChart of  counts of sales by date
2. $myBarChart->setVisibleAxes(array('x','y'));
3. $myBarChart->addAxisRange(0, 1, $countOfValuesInResultSet, 1);
4. $myBarChart->addAxisLabel(0, $arrayOfDateValuesFromResultSet);

What is the expected output? What do you see instead?
It would be great to be able to position labels on the X axis centrally
under each bar. At the moment, the first date label value is at the 0
position on the X axis and the last date label value at the other end of
the x axis.

What version of the product are you using? On what operating system?
gChartphp r23 (gChart.php) with Firefox 3.6.3 as the browser

Thanks

Original issue reported on code.google.com by novak...@gmail.com on 17 May 2010 at 12:00

GoogleCodeExporter commented 8 years ago
Apologies, I just worked this out by taking away the 4th addAxisRange parameter 
$step
variable and the date labels centred themselves... :)

Original comment by novak...@gmail.com on 17 May 2010 at 12:11

GoogleCodeExporter commented 8 years ago
Great work so far :)

Ok, further to this:

I have a grouped bar chart (gBarChart) with 3 data sets. I want to show labels 
for
each bar (each data set has one bar) on the X axis.

I am using the following code:

$myBarChart->addDataSet($dataArray1);
$myBarChart->addDataSet($dataArray2);
$myBarChart->addDataSet($dataArray3);

$myBarChart->setVisibleAxes(array('x','y'));

$myBarChart->addAxisLabel(0, $xaxisLabelsArray); //this array contains 3 labels

- When run, only the first label is shown and it is in the middle of the X 
axis...

I would like all 3 labels shown on the x axis - each of the 3 labels under its
relevant bar. It would be great if you could let me know which function(s) 
should I
use for this, thanks :)

Also, could the addValueMarkers()  function be used to add the values of the 
bars -
so they are shown just above the bars?

It would be great to see some sample code of this function in use.

All the best

Original comment by novak...@gmail.com on 19 May 2010 at 9:02

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
For the labels on the axis:
Since you have $dataArray with only 1 value, the chart API (read Google) thinks 
that you have 
only 1 group, so Google API thinks you need only 1 label.
You can use the command 'chxp' to specify the position of each label. Please 
try using this command and then 
let me know the result. In the mean time, I will try to add a function to 
handle label positions:
$myBarChart -> setProperty('chxp', '0,33,66,99');
Change 33,66,99 to place the labels evenly under your bars (based on a 0-100 
scale).

For addValueMarkers()
I wrote a wiki entry on this. Hope it will be helpful. :)

Bye!

Original comment by bardellie on 23 May 2010 at 10:26

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
I implemented the new function addAxisLabelPositions(). You can find it in r39 
of 
gChart.php.
An example of usage:

$chart = new gBarChart(300, 150, 'g', 'v');
$chart -> addDataSet(array(4));
$chart -> addDataSet(array(10));
$chart -> addDataSet(array(3));
$chart -> setDataRange(0,15);
$stat -> setColors(array('000000','0000FF'));
$chart -> setVisibleAxes(array('x'));
$chart -> addAxisLabel(0, array('May', 'Jun', 'Jul'));
$chart -> addAxisRange(0, 0, 3);
$chart -> addAxisLabelPositions(0, array(0.5, 1.5, 2.5));
$chart -> setBarWidth('a');
$chart -> getImgCode();

If you use the command addAxisRange with addAxisLabelPositions you can set the 
positions more easily. In 
exemple, if you have 3 bars, then your axis range will be 0-3. Then the axis 
label positions will be 0.5, 1.5, 
2.5. Read this values in this way: the first label is positioned at the middle 
of the first bar (and then at 0.5 
bars from the beginning of the chart), the second label is positioned at the 
middle of second bar (and then 
1.5 bars from the beginning of the chart), and so on. If you have more than 3 
bars, just change the axis 
range.

Original comment by bardellie on 23 May 2010 at 11:29