highcharts柱状图动态加载
(1):导入样式
<script type="text/javascript" src="<%=request.getContextPath()%>/boot_js/jquery/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/highCharts/highcharts.js"></script>
(2):代码
<script type="text/javascript">
var oChart;
var oOptions;
var rntData;
oOptions = {
chart: {
renderTo: 'container', //将饼图渲染到container容器中,页面中需有一个id为container的div
type: 'column'//图表类型 column-柱状图 pie-饼图 line表示折线型(默认)spline表示曲线型areaspline表示曲线区域型
},
title: {
text: '公司地址分布图'//主标题
},
subtitle: {
text: '---------'//副标题
},
xAxis: {
type: 'category',//轴的类型
labels: {
//rotation: 20,倾斜度
style: {
fontSize: '13px',
//fontFamily: 'Verdana, sans-serif'
}
},
//设置x轴text文本
//categories:[]
},
yAxis: {
min: 0,
title: {
text: '人数'
}
},
legend: {
enabled: true
},
column:{
dataLabels:{
enabled:true, // dataLabels设为true
style:{
color:'#D7DEE9'
}
}
},
//绑定鼠标放上后显示的字段
tooltip: {
pointFormat: '{series.name}: <b>{point.y:.1f} 人</b>',
shared: false,//节点数据框共享
enabled: true,//每个节点显示数据框
formatter: function() {//格式化每个节点数据框
//return '<b>'+ this.x +'</b><br>'+ this.series.name +': '+ this.y;
return '<b>'+ this.series.name +'</b>入职人数: <b>'+ this.y +'</b>人';
}
},
series: []
}
$(document).ready(function(){
oChart = new Highcharts.Chart(oOptions);
//异步动态加载数据列
LoadSerie_Ajax();
});
//异步读取数据并加载到图表
function LoadSerie_Ajax() {
var startTime = $("#startTime").val();
var endTime = $("#endTime").val();
//oChart.showLoading();
$.ajax({
url :
'<%=request.getContextPath()%>/charts/getCharts.action?startTime='+startTime+"&endTime="+endTime,
type : 'POST',
dataType : 'json',
contentType: "application/x-www-form-urlencoded; charset=utf-8",
success : function(rntData){
for(var i in rntData){
var oSeries = {
name:rntData[i].dname, //该 name 是data数值的名称
pointPadding: 0, //数据点之间的距离值
groupPadding: 0, //分组之间的距离值
borderWidth: 20,
shadow: true,
pointWidth:5, //柱子之间的距离值
data: eval("[" + rntData[i].count + "]") // series的data接受json数组
};
oChart.addSeries(oSeries);//将对象添加到series中
}
}
});
oChart.hideLoading();
}
</script>
(3)html代码
<div id="container" style="width:800px;height: 400px;margin-top: 80px;margin-left: 330px;"></div>
根据以上的配置可以实现柱状图的动态调用。
如果需要再加条件查询时,页面加载后需要清空上一次的数据,将data数组的length长度设置为0;