gchartphp addDataSet () максимальный предел? - PullRequest
0 голосов
/ 06 августа 2011

Я пытаюсь создать скрипт PHP, который отображает некоторые исторические данные о запасах.

У меня есть данные в массиве, и я пытаюсь отобразить их с помощью gchartphp, используя этот код:

require_once("../gchart/gChart.php");
$lineChart = new gLineChart(1000, 200);
//********PROBLEM HERE**********
$lineChart->addDataSet($yearsData); 
//******************************
$lineChart->setLegend(array('Nice figures'));
$lineChart->setColors(array('ED237A'));
$lineChart->setVisibleAxes(array('x','y'));
$lineChart->setDataRange(0,1);
$lineChart->setLegendPosition('r');
// axisnr, from, to, step
$lineChart->addAxisRange(0,0,365);
$lineChart->addAxisRange(1,0,1);

$lineChart->setGridLines(floatval(1.9),10);
$lineChart->renderImage(true);

Если я добавлю что-то подобное в addDataSet, оно будет работать, и график отобразится.

array(0.34234, 1, 10, .01, 20)

Однако, если я добавлю массив с 365 значениями в addDataSet, график не будет отображаться, и на странице будет отображаться символ разорванного изображения.На странице нет предупреждений или ошибок.

Есть предложения?Существует ли ограничение на количество значений, которые вы можете отобразить?

1 Ответ

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

AFAIK, 365 значений должны быть в порядке для POST. Если бы вы сделали GET, был бы больше шанс, что размер был бы слишком большим.

Вероятная проблема:
1) Вы не выводите изображение.

$lineChart->renderImage(true); само по себе не будет производить изображение. Вам необходимо установить данные png, сгенерированные вашим скриптом, в качестве src для тега. Так что, если приведенный выше скрипт - это graph.php, вы должны отобразить его в отдельном файле, например:

<img src='graph.php' />

2) Во время генерации изображения вы выводите данные на экран.

Если вы посмотрите на код функции renderImage внутри gChart.php,
первая строка header('Content-type: image/png');

Таким образом, вывод на экран хотя бы одного символа перед этим вызовом, например, отладочный вывод (в графе .php), испортит ваше изображение. Например, следующее приведет к повреждению изображения.

echo "x";
$chart->renderImage( true );
...