Как я могу изменить заголовок, который будет расположен в верхней правой части графика, используя Phpgraphlib?

Я могу легко найти заголовок, чтобы быть в центре или слева, используя эти команды:

$graph->setTitleLocation("center");
$graph->setTitleLocation("left");

… но если я использую это:

$graph->setTitleLocation("right");

Я даже не вижу график больше. Полный код:

<?php
include('../phpgraphlib.php');
$graph = new PHPGraphLib(500, 350);
$data = array(12124, 5535, 43373, 22223, 90432, 23332, 15544, 24523, 32778, 38878, 28787, 33243, 34832, 32302);
$graph->addData($data);
$graph->setTitle('Widgets Produced');
$graph->setTitleLocation("right");
$graph->setGradient('red', 'maroon');
$graph->createGraph();

0

Решение

Это может быть ошибка в коде. Для левой и центральной части он использует локальную переменную, а для правой — свойство, которое не существует.

protected function generateTitle()
{
//spacing may have changed since earlier
//use top margin or grid top y, whichever less
$highestElement = ($this->top_margin < $this->y_axis_y2) ? $this->top_margin : $this->y_axis_y2;
$textVertPos = ($highestElement / 2) - (self::TITLE_CHAR_HEIGHT / 2); //centered
$titleLength = strlen($this->title_text);
if ($this->bool_title_center) {
$title_x = ($this->width / 2) - (($titleLength * self::TITLE_CHAR_WIDTH) / 2);
$title_y = $textVertPos;
} elseif ($this->bool_title_left) {
$title_x = $this->y_axis_x1;
$title_y = $textVertPos;
} elseif ($this->bool_title_right) {
$this->title_x = $this->x_axis_x2 - ($titleLength * self::TITLE_CHAR_WIDTH);
$this->title_y = $textVertPos;
}
imagestring($this->image, 2, $title_x , $title_y , $this->title_text,  $this->title_color);
}

Попробуйте изменить ссылки на $this->title_x а также $this->title_y в $title_x а также $title_y на вашей локальной копии, и посмотрите, как это работает:

    } elseif ($this->bool_title_right) {
$title_x = $this->x_axis_x2 - ($titleLength * self::TITLE_CHAR_WIDTH);
$title_y = $textVertPos;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]