轉(zhuǎn)帖|使用教程|編輯:龔雪|2014-08-15 09:29:52.000|閱讀 1446 次
概述:本文為Highcharts制作柱狀圖教程并帶有Highcharts 柱狀圖演示demo,幫助朋友們進一步了解Highcharts柱狀圖制作方法。教程中還包括兩個示例:年度財經(jīng)支出統(tǒng)計圖、男女比例分布圖。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
柱狀圖廣泛應(yīng)用于數(shù)據(jù)統(tǒng)計和分析,它是由一系列高度不等的縱向條紋表示數(shù)據(jù)分布的情況,能夠直觀的表示數(shù)據(jù)間的差異。柱狀圖可以是縱向和橫向排列,本文講解通過Highcharts生成一個年度財經(jīng)支出統(tǒng)計圖和一個男女比例分布圖。
通過以下配置,可以生成一個柱狀圖與曲線圖共存、雙Y軸、X軸標簽旋轉(zhuǎn)(標簽名稱太長的情況)、XY軸均可放大的、去除LOGO信息的統(tǒng)計圖表。具體請看代碼和注釋:
var chart; $(function() { chart = new Highcharts.Chart({ chart: { renderTo: 'chart_column', //圖表放置的容器,關(guān)聯(lián)DIV#id zoomType: 'xy' //X、Y軸均可放大 //因為是柱狀圖和曲線圖共存在一個圖表中,所以默認圖表類型不在這里設(shè)置。 }, title: { text: '2011-2012年財經(jīng)支出統(tǒng)計圖' //圖表標題 }, subtitle: { text: '數(shù)據(jù)來源:新浪財經(jīng)' //圖表副標題 }, credits: { enabled: false //不顯示LOGO }, xAxis: [{ //X軸標簽 categories: ['2010年3月', '2010年4月', '2010年5月', '2010年6月', '2010年7月', '2010年8月', '2010年10月', '2010年11月', '2010年12月', '2011年3月', '2011年4月', '2011年5月', '2011年6月', '2011年7月', '2011年8月', '2011年9月', '2011年10月', '2011年11月'], labels: { rotation: -45, //逆時針旋轉(zhuǎn)45°,標簽名稱太長。 align: 'right' //設(shè)置右對齊 } }], yAxis: [{ //設(shè)置Y軸-第一個(增幅) labels: { formatter: function() { //格式化標簽名稱 return this.value + '%'; }, style: { color: '#89A54E' //設(shè)置標簽顏色 } }, title: {text: ''}, //Y軸標題設(shè)為空 opposite: true //顯示在Y軸右側(cè),通常為false時,左邊顯示Y軸,下邊顯示X軸 }, { //設(shè)置Y軸-第二個(金額) gridLineWidth: 0, //設(shè)置網(wǎng)格寬度為0,因為第一個Y軸默認了網(wǎng)格寬度為1 title: {text: ''},//Y軸標題設(shè)為空 labels: { formatter: function() {//格式化標簽名稱 return this.value + ' 萬億元'; }, style: { color: '#4572A7' //設(shè)置標簽顏色 } } }], tooltip: { //鼠標滑向數(shù)據(jù)區(qū)顯示的提示框 formatter: function() { //格式化提示框信息 var unit = { '金額': '億元', '增幅': '%' } [this.series.name]; return '' + this.x + ': ' + this.y + ' ' + unit; } }, legend: { //設(shè)置圖例 layout: 'vertical', //水平排列圖例 shadow: true, //設(shè)置陰影 }, series: [{ //數(shù)據(jù)列 name: '金額', color: '#4572A7', type: 'column', //類型:縱向柱狀圖 yAxis: 1, //數(shù)據(jù)列關(guān)聯(lián)到Y(jié)軸,默認是0,設(shè)置為1表示關(guān)聯(lián)上述第二個Y軸即金額 data: [5923.95, 5575.55, 5786.7, 8119.15, 5810.87, 6413.69, 6488.3, 10599.64, 17982, 7570, 7304.45, 8268, 10809.12, 6949.92, 8076.92, 10018.55, 8079.03, 11396.18] //金額數(shù)據(jù) }, { name: '增幅', color: '#89A54E', type: 'spline', //類型:曲線圖 data: [18.3, 9.8, 25.6, 26.8, 16.6, 35.4, 38.5, 66.9, -10.4, 27.8, 31.0, 42.9, 33.1, 19.6, 25.9, 18.3, 24.5,7.5] //增幅數(shù)據(jù) }] }); });
前面的例子我們都使用的是靜態(tài)數(shù)據(jù),本例中,我想通過PHP來讀取mysql數(shù)據(jù)表中的數(shù)據(jù),然后處理給Highcharts生成一個男女比例分布圖。
首先,設(shè)計一張簡單的表chart_student,用來存儲各學院的男生女生人數(shù)。
然后,連接mysql表,讀取數(shù)據(jù):
include_once('connect.php'); //連接數(shù)據(jù)庫文件 $res = mysql_query("select * from chart_student"); //查詢讀取chart_student while($row = mysql_fetch_array($res)){ //循環(huán)結(jié)果集 $college[] = $row['college']; //獲取學院名稱 $male[] = intval($row['male']); //獲取男生人數(shù),并轉(zhuǎn)換為數(shù)字整型 $female[] = intval($row['female']); //獲取女生人數(shù),并轉(zhuǎn)換為數(shù)字整型 }
本例將要通過Highcharts生成一個橫向柱狀圖,Y軸表示學院,X軸表示各學院男女比例分布。通過上述PHP代碼獲取學院名稱作為Y軸標簽,獲取各學院男生和女生數(shù)作為X軸計算比例。
接下來配置Highcharts,請看代碼和注釋:
var chart; $(function() { chart = new Highcharts.Chart({ chart: { renderTo: 'chart_bar', //圖表放置的容器,關(guān)聯(lián)DIV#id defaultSeriesType: 'bar' //圖標類型為bar,即橫向柱狀條形統(tǒng)計圖 }, title: { text: '2011屆畢業(yè)生各學院男女比例分布圖' //設(shè)置圖表標題 }, xAxis: { //設(shè)置X軸 categories: <?php echo json_encode($college); ?> //通過PHP將讀取的學院名稱以JSON格式輸出 }, yAxis: { //設(shè)置Y軸 min: 0, //最小值為0 title: {text: ''} }, plotOptions: { //設(shè)置數(shù)據(jù)點 series: { stacking: 'percent' //數(shù)據(jù)點關(guān)聯(lián)組合,采用百分比形式 } }, series: [{ name: '男生', data: <?php echo json_encode($male);?> //通過PHP將讀取的各學院男生人數(shù)并以JSON格式輸出 }, { name: '女生', data: <?php echo json_encode($female);?> //通過PHP將讀取的各學院女生人數(shù)并以JSON格式輸出 }] }); });
這樣就生成了一張男女比例分布圖,。
來源
原文
推薦閱讀:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)