[英]Unable to display x-axis labels on multi-column mysql array in Highcharts
[英]X axis labels on HighCharts
此代碼簇生成一個圖表,該圖表應計算一周中每一天所喝啤酒的數量。 我的問題是在X軸上顯示星期幾標簽。 在圖片中,您可以看到數組的兩列(“啤酒”,“天”)都在顯示,但是我無法顯示幾天。 我不想將星期幾加載到單獨的數組中,因為我還有其他圖表,其中X軸會有所不同。
關於如何使xAxis:{categores}或series:[{data:}]僅顯示圖表中數組的一列的任何建議?
<!DOCTYPE HTML>
<?php
include "config_mysqli.php";
$con = mysqli_connect($host, $user, $password, $database);
if (mysqli_connect_errno())
die('Could not connect: ' . mysqli_connect_error());
if (!$con) { die('Could not connect: ' . mysql_error());}
$sql = "SELECT COUNT(*) AS 'Beers', DAYNAME(date) as 'Day'
FROM beer
WHERE date IS NOT NULL
GROUP BY DAYNAME(date) , DAYOFWEEK(date)
ORDER BY DAYOFWEEK(date);";
$result = $con->query($sql);
$rows = array();
while($r = mysqli_fetch_array($result)) {
$row[0] = $r['Day'];
$row[1] = $r['Beers'];
array_push($rows,$row);}
$data=json_encode($rows, JSON_NUMERIC_CHECK);
$sql2 = " SELECT DAYNAME(date) as 'TopDay'
FROM beer
WHERE date IS NOT NULL
GROUP BY DAYNAME(date)
ORDER BY COUNT(*) DESC
LIMIT 1;";
$result2 = $con->query($sql2);
$rows2 = array();
while($r2 = mysqli_fetch_array($result2)) {
$row2[0] = $r2['TopDay'];
array_push($rows2,$row2);}
$theTitle = implode($rows2[0]);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Beer Intelligence Project</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(function () {
var chart,
mydata = <?php echo $data ?>;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'bar',
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
xAxis: {
categories: mydata
},
yAxis: {
title: {
text: 'Beers'
}
},
title: {
text: 'Beers by day of the week'
},
subtitle: {
text: 'The most beers are drank on a <?php echo $theTitle?> '
},
tooltip: {pointFormat: '<tr><td style="color:{series.color};padding:0">Number of beers: </td>' + '<td style="padding:0"><b>{point.y:,.0f}</b></td></tr>'
},
series: [{
type: 'column',
name: 'Beers',
data: mydata,
color: 'black'
}]
});
});
});
</script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
</head>
<body>
<div id="bar"></div>
</body>
</html>
謝謝,蒂姆
您正在使用二維數組mydata
作為xAxis.categories
屬性。 您只想使用這一天:
xAxis: {
categories: mydata.map(function(data){ return data[0] });
},
假設mydata
看起來像這樣:
[["Wednesday",62],["Thursday", 47]]
如果您不喝那么多,可能會更容易編碼;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.