PHP pchart 2.0 Дополнительные метки, выровненные по каждой полосе - PullRequest
0 голосов
/ 15 августа 2011

Привет, у меня есть гистограмма pChart 2, которая содержит переменное количество баров, а также фактическое значение для каждого бара. Я хочу отобразить 2 дополнительных значения справа от каждого бара.Пожалуйста, обратите внимание на изображение ниже, где значения в прямоугольнике являются примером цифр, которые мне нужно добавить к диаграмме.

enter image description here

Очевидно, я хочу, чтобы они выглядели немного аккуратнеечем это, но на самом деле в данный момент мне просто интересно

Как правильно сделать это в pChart?
Есть ли встроенный способ для выполнения такого рода украшения?Если нет, то как лучше всего выровнять свои дополнительные выходные данные с каждым столбцом на диаграмме, учитывая, что эти столбцы имеют переменный размер в пикселях и размер данных (т. Е. Это должно быть рассчитано не приблизительно для одного сценария).

Просто для наглядности дополнительные цифры просто совпадают с показателями предыдущих лет и будут оформлены в цветной рамке или аналогично и включены в легенду.

Спасибо.

1 Ответ

1 голос
/ 08 сентября 2011

В методе drawBarChart () файла pDraw.class.php в конце этого метода есть следующее условие:

if ($DisplayPos == LABEL_POS_INSIDE && abs($TxtWidth) < abs($BarWidth)){
...
else{

В конце этого блока else находится $ this-> Метод drawText (), он выводит значение в конце бара и будет вызываться для каждого бара в серии.Вы также можете в этот момент записать дополнительные значения в конец графика (в данном случае правого поля), используя следующее:

$itemGap = 45;  //the space between items
$items = array(1,2,3); //the value to draw


    $colStart = $this->GraphAreaX2 + $itemGap;

    foreach($itemGap as $item)
    {
         $this->drawText($colStart, $Y + $YOffset + $YSize / 2, $item, array("R" => $DisplayR, "G" => $DisplayG, "B" => $DisplayB, "Align" => $Align, "FontSize"  => $DisplaySize));
         $colStart += $itemGap;
    }

Надеюсь, это кому-нибудь пригодится.

...