PHP+mysql+Highcharts生成餅狀圖

Mysql
首先我們建一張·chart_pie·表作為統(tǒng)計(jì)數(shù)據(jù)。
-- -- 表的結(jié)構(gòu) `chart_pie` -- CREATE TABLE IF NOT EXISTS `chart_pie` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(30) NOT NULL, `pv` int(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; -- -- 轉(zhuǎn)存表中的數(shù)據(jù) `chart_pie` -- INSERT INTO `chart_pie` (`id`, `title`, `pv`) VALUES (1, '百度', 1239), (2, 'google', 998), (3, '搜搜', 342), (4, '必應(yīng)', 421), (5, '搜狗', 259), (6, '其他', 83);
PHP
在pie.php我們要生成數(shù)據(jù)給前端調(diào)用:
$query = mysql_query("select * from chart_pie");
while($row = mysql_fetch_array($query)){
$arr[] = array(
$row['title'],intval($row['pv'])
);
}
$data = json_encode($arr);
jQuery
$(function() {
$('#highcharts').highcharts({
chart: {
renderTo: 'chart_pie',
//餅狀圖關(guān)聯(lián)html元素id值
defaultSeriesType: 'pie',
//默認(rèn)圖表類(lèi)型為餅狀圖
plotBackgroundColor: '#ffc',
//設(shè)置圖表區(qū)背景色
plotShadow: true //設(shè)置陰影
},
title: {
text: '搜索引擎統(tǒng)計(jì)分析' //圖表標(biāo)題
},
credits: {
text: 'jb51.net'
},
tooltip: {
formatter: function() { //鼠標(biāo)滑向圖像提示框的格式化提示信息
return '<b>' + this.point.name + '</b>: ' + twoDecimal(this.percentage) + ' %';
}
},
plotOptions: {
pie: {
allowPointSelect: true,
//允許選中,點(diǎn)擊選中的扇形區(qū)可以分離出來(lái)顯示
cursor: 'pointer',
//當(dāng)鼠標(biāo)指向扇形區(qū)時(shí)變?yōu)槭中停牲c(diǎn)擊)
//showInLegend: true, //如果要顯示圖例,可將該項(xiàng)設(shè)置為true
dataLabels: {
enabled: true,
//設(shè)置數(shù)據(jù)標(biāo)簽可見(jiàn),即顯示每個(gè)扇形區(qū)對(duì)應(yīng)的數(shù)據(jù)
color: '#000000',
//數(shù)據(jù)顯示顏色
connectorColor: '#999',
//設(shè)置數(shù)據(jù)域扇形區(qū)的連接線的顏色
style: {
fontSize: '12px' //數(shù)據(jù)顯示的大小
},
formatter: function() { //格式化數(shù)據(jù)
return '<b>' + this.point.name + '</b>: ' + twoDecimal(this.percentage) + ' %';
//return '<b>' + this.point.name + '</b>: ' + this.y ;
}
}
}
},
series: [{ //數(shù)據(jù)列
name: 'search engine',
data: data //核心數(shù)據(jù)列來(lái)源于php讀取的數(shù)據(jù)并解析成JSON
}]
});
});
此外,格式化數(shù)據(jù)市,如果要顯示百分比,可使用this.percentage,Highcharts會(huì)自動(dòng)將整數(shù)轉(zhuǎn)換為百分?jǐn)?shù),如果要顯示數(shù)據(jù)量,直接使用this.y。
百分比代碼如下:
formatter: function() { //格式化數(shù)據(jù)
return '<b>' + this.point.name + '</b>: ' + twoDecimal(this.percentage) + ' %';
}
實(shí)際數(shù)據(jù)是這樣的:
formatter: function() { //格式化數(shù)據(jù)
return '<b>' + this.point.name + '</b>: ' + this.y ;
}
最后我們要保留兩位小數(shù),代碼貼下:
function twoDecimal(x) { //保留2位小數(shù)
var f_x = parseFloat(x);
if (isNaN(f_x)) {
alert('錯(cuò)誤的參數(shù)');
return false;
}
var f_x = Math.round(x * 100) / 100;
var s_x = f_x.toString();
var pos_decimal = s_x.indexOf('.');
if (pos_decimal < 0) {
pos_decimal = s_x.length;
s_x += '.';
}
while (s_x.length <= pos_decimal + 2) {
s_x += '0';
}
return s_x;
}
柱狀圖、餅狀圖、曲線圖等都是一樣的。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- jQuery插件HighCharts繪制2D柱狀圖、折線圖和餅圖的組合圖效果示例【附demo源碼下載】
- jQuery插件HighCharts繪制2D柱狀圖、折線圖的組合雙軸圖效果示例【附demo源碼下載】
- jQuery插件HighCharts實(shí)現(xiàn)2D柱狀圖、折線圖的組合多軸圖效果示例【附demo源碼下載】
- jQuery插件HighCharts實(shí)現(xiàn)的2D回歸直線散點(diǎn)效果示例【附demo源碼下載】
- jQuery插件HighCharts實(shí)現(xiàn)的2D對(duì)數(shù)餅圖效果示例【附demo源碼下載】
- jQuery插件HighCharts繪制2D帶Label的折線圖效果示例【附demo源碼下載】
- jQuery插件HighCharts繪制的基本折線圖效果示例【附demo源碼下載】
- Javascript highcharts 餅圖顯示數(shù)量和百分比實(shí)例代碼
- jQuery Chart圖表制作組件Highcharts用法詳解
- jQuery.Highcharts.js繪制柱狀圖餅狀圖曲線圖
- 淺析jquery的js圖表組件highcharts
- JQuery Highcharts 動(dòng)態(tài)生成圖表的方法
- jQuery插件HighCharts繪制2D金字塔圖效果示例【附demo源碼下載】
相關(guān)文章
Tab頁(yè)界面 用jQuery及Ajax技術(shù)實(shí)現(xiàn)(php后臺(tái))
到了B/S開(kāi)發(fā)時(shí)代,網(wǎng)頁(yè)前端布局也把Tab頁(yè)的布局形式吸收了過(guò)來(lái)。特別是和Ajax技術(shù)結(jié)合起來(lái),可以更充分發(fā)揮Tab頁(yè)的良好表現(xiàn)力和數(shù)據(jù)緩存的優(yōu)勢(shì),是一種良好的網(wǎng)頁(yè)布局形式2011-10-10
基于$.ajax()方法從服務(wù)器獲取json數(shù)據(jù)的幾種方式總結(jié)
下面小編就為大家分享一篇基于$.ajax()方法從服務(wù)器獲取json數(shù)據(jù)的幾種方式總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
BootStrap無(wú)限級(jí)分類(lèi)(無(wú)限極分類(lèi)封裝版)
本文給大家介紹bootstrap無(wú)限級(jí)分類(lèi)jq拓展之前的無(wú)限級(jí)分類(lèi)的封裝版的知識(shí),非常不錯(cuò)具有參考借鑒價(jià)值,感興趣的朋友一起看下吧2016-08-08
jQuery Ajax提交表單查詢獲得數(shù)據(jù)實(shí)例代碼
用戶輸入一個(gè)表單,輸入準(zhǔn)考證和驗(yàn)證碼,驗(yàn)證用戶是否輸入表單,點(diǎn)擊查詢提交,然后從服務(wù)器得到返回的數(shù)據(jù)并顯示出來(lái)2012-09-09
jQuery解析XML文件同時(shí)動(dòng)態(tài)增加js文件的方法
這篇文章主要介紹了jQuery解析XML文件同時(shí)動(dòng)態(tài)增加js文件的方法,涉及jQuery Ajax調(diào)用及返回函數(shù)中增加js文件的相關(guān)使用技巧,需要的朋友可以參考下2015-06-06
jquery對(duì)象和DOM對(duì)象的任意相互轉(zhuǎn)換
這篇文章主要介紹了jquery對(duì)象和DOM對(duì)象的任意相互轉(zhuǎn)換的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02

