Как отобразить число, которое увеличивается со временем, используя php и Google chart api

#php #google-visualization

#php #google-визуализация

Вопрос:

У меня есть некоторые данные в mysql, которые я загружаю в php и рисую линейную диаграмму, используя Google chart api.

Вот часть кода:

 // ... do a sql query , then loop and create a chart ...

while($row=mysql_fetch_array($result))
{
$values[0][]=$row['v1'];
$values[1][]=$row['v2'];
}

$width=600;
$height=500;
$scaleMin=0;
$scaleMax=99;
$chart = new GoogleChart('lc', $width,$height );
$chart->setAutoscale(GoogleChart::AUTOSCALE_OFF);
// ... other google chart setup code
$line = new GoogleChartData($values[0]);
$line->setAutoscale(false);
$line->setScale($scaleMin,$scaleMax);
$line->setLegend('value1');
$chart->addData($line);

$line = new GoogleChartData($values[1]);
$line->setAutoscale(false);
$line->setScale($scaleMin,$scaleMax);
$line->setLegend('value2');
$chart->addData($line);
// ... more lines and chart set up ...

header('Content-Type: image/png');
echo $chart;
  

Итак, это работает нормально, за исключением того, что мои данные «value1» или «v1» обычно варьируются от минимального значения 10 до максимального значения 90. Мои данные «value2» или «v2» будут начинаться с 0 и со временем будут увеличиваться — потенциально до 100 000 или более.

Я пытаюсь выяснить, как либо настроить Google chart, чтобы он каким-то образом отображал его, либо потенциально изменить данные в массиве, чтобы они отображались должным образом.

В настоящее время он будет рисовать линию, начиная с 0, затем час за часом она будет немного подниматься, образуя форму, подобную лестнице. Проблема в том, что в конечном итоге оно переваливает за 99, и у вас больше нет строки или чего-то подобного.

Просто ищу несколько мыслей.

Ответ №1:

Ну, я думаю, что лучший ответ — либо масштабировать эти значения, либо использовать альтернативную диаграмму (например, столбики и тому подобное)
вот ссылка, которую я получил из документа Google chart api.
http://code.google.com/p/googlechartphplib/wiki/Autoscaling
http://code.google.com/intl/fr-FR/apis/chart/image/docs/data_formats.html#scaled_values

Ответ №2:

В итоге я добавил некоторую логику в свой php-код, чтобы проверить предыдущее значение в цикле, и установил значение равным «10», если оно увеличилось, «0», если оно осталось неизменным. Я не вижу, на какую сумму оно увеличилось (хотя я уверен, что математически я мог бы это вычислить), но в моем случае все, что меня волнует, это знать, увеличилось ли оно за это время. На моем графике я вижу линию, начинающуюся с 0, переходящую на 10 за несколько тактов, затем возвращающуюся к 0.