#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.