Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2014, 20:58   #1
marwell.
Пользователь
 
Регистрация: 05.12.2012
Сообщений: 63
Вопрос jpgraph

доброго времени суток! решил использовать для построения гистограммы класс jpgraph. Данные беру из базы, график вроде бы строится. Но, не всегда, причем не понятно почему.
строю так
PHP код:
$data1y=$arr_count;

// Create the graph. These two calls are always required
$graph = new Graph(900,400,'auto');
$graph->SetScale("texttlin");

$theme_class=new UniversalTheme;
$graph->SetTheme($theme_class);

$graph->yaxis->SetTickPositions($arr_count);
$graph->SetBox(false);

$graph->ygrid->SetFill(false);
$graph->xaxis->SetTickLabels($arr_year);
$graph->yaxis->HideLine(false);
$graph->yaxis->HideTicks(false,false);

// Create the bar plots
$b1plot = new BarPlot($data1y);

// ...and add it to the graPH
$graph->Add($b1plot);


$b1plot->SetColor("white");
$b1plot->SetFillColor("#cc1111");

$graph->title->Set("Bar Plots");

// Display the graph
$graph->Stroke(); 
дело в том, что когда в начале массиве $arr_count элементы равны 0, график не строится, пишет "JpGraph Error: 25067 Your manually specified scale and ticks is not correct. The scale seems to be too small to hold any of the specified tick marks." А если нули находятся не в начале массива, то строится нормально...
дамп массивов во время ошибки:
$arr_year: ( [0] => 2010
[1] => 2011
[2] => 2012
[3] => 2013
[4] => 2014
[5] => 2015
[6] => 2016 )

$arr_count: ( [2010] => 0
[2011] => 0
[2012] => 1
[2013] => 39
[2014] => 7
[2015] => 0
[2016] => 0 )
если даже удалить все нулевые элементы из массива $arr_count, при таком массиве $arr_year, то эта же ошибка появляется.
а при дампе:
$arr_year: ( [0] => 2012
[1] => 2013
[2] => 2014 )
$arr_count: ( [0] => 1
[1] => 39
[2] => 7
[3] => 0 ) график строится нормально
marwell. вне форума Ответить с цитированием
Старый 28.05.2014, 21:14   #2
marwell.
Пользователь
 
Регистрация: 05.12.2012
Сообщений: 63
По умолчанию

все потому что значение индекса у массива $arr_count в этом случае начинается с 2011?
upd: хотя вроде нет. совсем запутался
upd2: да, дело было в этом. прошу прощения, получается зря создал тему

Последний раз редактировалось marwell.; 28.05.2014 в 21:19. Причина: upd2
marwell. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое использование jpgraph - PHP jquery vbuoc PHP 4 02.02.2010 21:19
Динамическое использование jpgraph FAV1210 PHP 24 30.12.2008 18:10