IFKey
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Мой класс для вывода графиков Google Chart Tools: http://code.google.com/intl/ru-RU/apis/chart/interactive/docs/gallery.html Класс: Цитата: <? class googleChart { var $addColumn = array(); var $addRows = array(); var $options = array(); function chartAddColumn($title,$type='number') { $this->addColumn['type'][] = $type; # string | number $this->addColumn['title'][] = $title; } function chartOptions($option,$param) { $this->options['option'][] = $option; $this->options['param'][] = $param; } function chartAddRows($title,$param=array()) { $this->addRows['title'][] = $title; $this->addRows['param'][] = $param; } function chartAddColumnFunc($addColumn) { if (empty($addColumn)) {return false;} foreach ($addColumn['title'] as $k=>$v) { $r .= "data.addColumn('".$addColumn['type'][$k]."', '".$addColumn['title'][$k]."');\n"; } return $r; } function chartAddRowsFunc($addRows) { if (empty($addRows)) {return false;} foreach ($addRows['title'] as $k=>$v) { $r .= "\n['".$addRows['title'][$k]."',".$this->chartAddRowsFuncParam($addRows['param'][$k])."],"; } $r = $this->deLostChar($r); return $r; } function chartOptionFunc($options) { if (empty($options)) {return false;} foreach ($options['option'] as $k=>$v) { $r .= "\n".$options['option'][$k].": ".$options['param'][$k].","; } $r = $this->deLostChar($r); return $r; } function chartAddRowsFuncParam($addRowsParam=array()) { foreach ($addRowsParam as $v) { $r .= $v.','; } $r = $this->deLostChar($r); return $r; } # $type: BarChart, PieChart, LineChart, ComboChart, ColumnChart, CandlestickChart, BubbleChart, AreaChart # options('title', 'заголовок'); # options('is3D', 'true'); # для PieChart function chartDraw($title,$divName,$type='BarChart') { print ' <script type="text/javascript"> google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); '.$this->chartAddColumnFunc($this->addColumn).' data.addRows([ '.$this->chartAddRowsFunc($this->addRows).' ]); var options = { '.$this->chartOptionFunc($this->options).' }; var chart = new google.visualization.'.$type.'(document.getElementById("'.$divName.'")); chart.draw(data, options); } </script>'; $this->addColumn = array(); $this->addRows = array(); $this->options = array(); } } ?> | Использование: Цитата: <? $gChart=new googleChart; $gChart->chartAddColumn('day','string'); $gChart->chartAddColumn('хосты','number'); $gChart->chartAddColumn('хиты','number'); $gChart->chartOptions('title',"'Статистика посещений'"); $gChart->chartAddRows('за сегодня',array(10,18)); $gChart->chartAddRows('за неделю',array(75,232)); $gChart->chartAddRows('за месяц',array(334,749)); $gChart->chartDraw('Статистика посещений','chart_div','BarChart'); ?> <div id="chart_div" style="width:700px;height:200px;"></div> | Реализован не весь функционал предоставленный гуглом, так что можете доработать по своему вкусу
| Всего записей: 331 | Зарегистр. 20-03-2007 | Отправлено: 16:45 01-03-2012 | Исправлено: IFKey, 14:51 09-06-2012 |
|