【求高人】用highcharts实现动态生成对比柱状图的问题

darlin_緢 2012-08-23 04:54:00
用Ajax在前台取数据,并用柱状图显示出来。
前台代码:

var colors;
$(function () {
$(document).ready(function () {
colors = Highcharts.getOptions().colors;
categories = [];
name = '';
data = [];

chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column'
},
title: {
text: '多人工作量对比图'
},
subtitle: {
text: '已投入工作量--审定工作量'
},
xAxis: {
categories: categories
},
yAxis: {
title: {
text: '工作量(小时/人)'
}
},
legend: {
layout: 'vertical',
backgroundcolor: '#fff',
align: 'left',
verticalAlign: 'top',
x: 70,
y: 20,
floating: true,
shadow: true
},
plotOptions: {
column: {
cursor: 'pointer'
}
},
tooptip: {
formatter: function () {
return '' + this.x + "%%" + this.y + "";
}
},
series: [{
name: '',
data: data
}]
})
})
})
function GetRepDataByCondition(param) {
var condition = GetConditions();
AjaxAns.GetRepDataByCondition(param, condition, GetRepDataByConditionResult_CallBack);
}

function GetRepDataByConditionResult_CallBack(result) {
if (result.value != null) {
name = "已投入工作量";
for (var i = 0; i < result.value.length; i++) {
categories[i] = result.value[i].Key;
var valueTemp = (result.value[i].Value).split("#"); //工作量值
if (valueTemp.length > 0) {
if (valueTemp[0].toString() == "" || valueTemp[1].toString() == "") {
data[i] = ["", 0];
}
else {
data[i] = ["", parseFloat(valueTemp[0])];
}
}
}
chart.xAxis[0].setCategories(categories);
chart.series[0].remove();
chart.addSeries({ name: name, data: data });
}
}


如上代码,可以直接显示出柱状图。


问题如下:
从数据库中取出的数据是这样的格式的:
张三 10#20
李四 50#5

现在要将第一列显示为横坐标,而第二列为纵坐标。两个数字分别为两个柱状图。


怎么实现这种对比的柱状图啊???
...全文
1181 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
分开_旅行 2014-08-01
  • 打赏
  • 举报
回复
楼主有没有好的解决办法了,如何显示多个name,而不是固定写死name值????
王向飞 2012-09-17
  • 打赏
  • 举报
回复
jiangzhengdong 2012-09-01
  • 打赏
  • 举报
回复
那柱状图怎么调整两个柱子间的间距呢?上官网找了半天没发现哪个属性可以控制间距
darlin_緢 2012-08-24
  • 打赏
  • 举报
回复
重点就是对series的赋值和初始化的地方。。。
darlin_緢 2012-08-24
  • 打赏
  • 举报
回复
这个对比的柱状图,我后来参考官网实现了,代码如下:

var colors;
$(function () {
$(document).ready(function () {
colors = Highcharts.getOptions().colors;
categories = [];
name = '';
data = [];

chart0 = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column'
},
title: {
text: '多人工作量对比图'
},
subtitle: {
text: '已投入工作量--审定工作量'
},
xAxis: {
categories: categories
},
yAxis: {
title: {
text: '工作量(小时/人)'
}
},
legend: {
layout: 'vertical',
backgroundcolor: '#fff',
align: 'left',
verticalAlign: 'top',
x: 40,
y: -10,
floating: true,
shadow: true
},
plotOptions: {
column: {
cursor: 'pointer'
}
},
tooptip: {
formatter: function () {
return '' + this.x + "%%" + this.y + "";
}
},
series: []
})
})
})

function GetRepDataByCondition(param) {
var condition = GetConditions();
if (condition != null) {
AjaxAns.GetRepDataByCondition(2, condition, GetRepDataByConditionResult_CallBack);
}
}

function GetRepDataByConditionResult_CallBack(result) {
if (result.value != null) {
name1 = "已投入工作量";
name2 = "审定工作量";
data1 = [];
data2 = [];
for (var i = 0; i < result.value.length; i++) {
categories[i] = result.value[i].Key;
var valueTemp = (result.value[i].Value).split("#"); //工作量值
if (valueTemp.length > 0) {
if (valueTemp[0].toString() == "" || valueTemp[1].toString() == "") {
if (valueTemp[0].toString() == "") {
data1[i] = ["", 0];
}
if (valueTemp[1].toString() == "") {
data2[i] = ["", 0];
}
}
else {
data1[i] = ["", parseFloat(valueTemp[0])];
data2[i] = ["", parseFloat(valueTemp[1])];
}
}
}
chart0.xAxis[0].setCategories(categories);
if (chart0.series.length > 0) {
for (var i = 0; i < 2; i++) {
chart0.series[0].remove();
}
}
chart0.addSeries({ name: name1, data: data1 });
chart0.addSeries({ name: name2, data: data2 });
}
}
darlin_緢 2012-08-23
  • 打赏
  • 举报
回复
自己顶一个
项目工程资源经过测试运行,功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会努力及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件等。资源质量优质,放心下载使用!可参考实现复现;设计报告也可借鉴此项目工程;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途,网络商品/电子资源资料具可复制性不支持退款。质量优质,放心下载使用。

87,995

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧