中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Highcharts結合PHP與Mysql生成餅狀圖

發布時間:2021-09-26 17:13:52 來源:億速云 閱讀:178 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“如何使用Highcharts結合PHP與Mysql生成餅狀圖”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何使用Highcharts結合PHP與Mysql生成餅狀圖”這篇文章吧。

1、準備

為了更好的講解,實例中在Mysql數據庫中建立一張表chart_pie,用于表示各搜索引擎帶來的訪問量,表中分別有id、title和pv三個字段,id是自增長整型、主鍵;title表示搜素引擎的名稱,pv表示對應的訪問量。chart_pie表中已預置了相關數據,如圖:

2、PHP

在pie.php文件中,寫入如下代碼:

include_once('connect.php'); //連接數據庫 $res = mysql_query("select * from chart_pie"); while($row = mysql_fetch_array($res)){ $arr[] = array( $row['title'],intval($row['pv']) ); } $data = json_encode($arr);

代碼中使用原生的PHP查詢mysq數據的方法,將查詢的結果集保存在一個數組$arr里,并將該數組轉換 以備前端js調用。

3、Javascript

通過配置Highcharts,可以生成一個漂亮的餅狀圖,詳見代碼及注釋,如果你還不知道Highcharts是什么東東,請查閱本站(xuebuyuan.com)前面的相關文章。

var chart; $(function() { chart = new Highcharts.Chart({        chart: {            renderTo: 'chart_pie',  //餅狀圖關聯html元素id值 defaultSeriesType: 'pie', //默認圖表類型為餅狀圖 plotBackgroundColor: '#ffc',  //設置圖表區背景色            plotShadow: true   //設置陰影        },        title: {            text: '搜索引擎統計分析'  //圖表標題        }, credits: { text: 'xuebuyuan.com' },        tooltip: {            formatter: function() { //鼠標滑向圖像提示框的格式化提示信息                return '<b>' + this.point.name + '</b>: ' +                twoDecimal(this.percentage) + ' %';            }        },        plotOptions: {            pie: {                allowPointSelect: true, //允許選中,點擊選中的扇形區可以分離出來顯示                cursor: 'pointer',  //當鼠標指向扇形區時變為手型(可點擊) //showInLegend: true,  //如果要顯示圖例,可將該項設置為true                dataLabels: {                    enabled: true,  //設置數據標簽可見,即顯示每個扇形區對應的數據                    color: '#000000',  //數據顯示顏色                    connectorColor: '#999',  //設置數據域扇形區的連接線的顏色 style:{ fontSize: '12px'  //數據顯示的大小 },                    formatter: function() { //格式化數據                        return '<b>' + this.point.name + '</b>: ' +                        twoDecimal(this.percentage) + ' %';                    }                }            }        },        series: [{ //數據列            name: 'search engine', data: <?php echo $data;?> //核心數據列來源于php讀取的數據并解析成JSON        }]    }); });

上述代碼中,核心數據data來源于pie.php中php轉換的json數據:$data。轉換后輸出的JSON數據格式為:

[["u767eu5ea6",1239],["google",998],["u641cu641c",342],["u5fc5u5e94",421], ["u641cu72d7",259],["u5176u4ed6",83]]

不用擔心,Highcharts會自動將JSON數據解析處理,并生成百分比的數據。

其實,Highcharts生成的餅狀圖還可以設置默認初始選中的扇形,即默認選中的扇形會從整圓形中分離出來,以便突出顯示。該效果要求默認data格式為:

[{"name":"u767eu5ea6","y":1239,"sliced":true,"selected":true},["google",998], ["u641cu641c",342],["u5fc5u5e94",421],["u641cu72d7",259],["u5176u4ed6",83]]

注意看代碼中前部分:{"name":"u767eu5ea6","y":1239,"sliced":true,"selected":true},這個字符串如何用PHP得到呢?這就要修改pie.php中的php部分代碼:

while($row = mysql_fetch_array($res)){ if($row['id']==1){ $arr1[] = array( "name" =>  $row['title'], "y" => intval($row['pv']), "sliced" => true,  //默認分離 "selected" => true  //默認選中 ); }else{ $arr[] = array(    $row['title'],intval($row['pv'])    ); } } //合并數組 $arrs = array_merge($arr1,$arr); $data = json_encode($arrs);

我們在循環遍歷結果集時,當id為1時,將該項設置為默認選中扇形區,構建數組$arr1,否則構建另一個數組$arr,然后將這兩個數組合并,并將合并后的數組轉換為json數據,供Highcharts調用。

此外,格式化數據市,如果要顯示百分比,可使用this.percentage,Highcharts會自動將整數轉換為百分數,如果要顯示數據量,直接使用this.y。

使用百分比:

formatter: function() { //格式化數據    return '<b>' + this.point.name + '</b>: ' + twoDecimal(this.percentage) + ' %'; }

使用實際數據:

formatter: function() { //格式化數據 return '<b>' + this.point.name + '</b>: ' + this.y ; }

注意:在使用百分比數據時,需要將數據強制保留兩位小數,否則有可能出現37.0000000001的情況,而實際上是37%。保留2位小數的JS函數twoDecimal()

以上是“如何使用Highcharts結合PHP與Mysql生成餅狀圖”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汾西县| 定兴县| 宜昌市| 陆川县| 湄潭县| 海南省| 沧州市| 马边| 合肥市| 大洼县| 南丹县| 西青区| 宁阳县| 嵩明县| 清徐县| 株洲市| 江口县| 甘谷县| 延寿县| 嘉禾县| 新津县| 永川市| 云安县| 沙洋县| 吉首市| 郓城县| 兴和县| 时尚| 永胜县| 炉霍县| 青田县| 西青区| 庄浪县| 黄石市| 河津市| 元阳县| 临泉县| 普定县| 广灵县| 桂林市| 盈江县|