Jquery jqplot-堆积图中的单个值,而不是总计
在堆叠条形图中,我们可以显示每个堆叠中每个系列的总数,如下所示 但是,我希望显示每个系列的值,而不是像这样的总数(请忽略两个样本的系列数不同的事实) 此外,我想在顶部显示堆栈的总数。 我的意思是,如果你看第一个图表,在第一个条中,值是5,15(5+10),24(15+9)。 我想要的结果应该像第二个图表,其中第一条的值是10,9,最后是顶部19的总和Jquery jqplot-堆积图中的单个值,而不是总计,jquery,jqplot,Jquery,Jqplot,在堆叠条形图中,我们可以显示每个堆叠中每个系列的总数,如下所示 但是,我希望显示每个系列的值,而不是像这样的总数(请忽略两个样本的系列数不同的事实) 此外,我想在顶部显示堆栈的总数。 我的意思是,如果你看第一个图表,在第一个条中,值是5,15(5+10),24(15+9)。 我想要的结果应该像第二个图表,其中第一条的值是10,9,最后是顶部19的总和 这个库有可能吗?这里有点麻烦。因为您希望每个系列都有一个标签,所以我引入了一个“空”系列。不过,它很好地复制了你想要的东西。小提琴 $(文档).r
这个库有可能吗?这里有点麻烦。因为您希望每个系列都有一个标签,所以我引入了一个“空”系列。不过,它很好地复制了你想要的东西。小提琴
$(文档).ready(函数(){
VarS1=[5,6];
var s2=[7,5];
var s3=[14,9];
var s4=[0,0];//仅用于总标签的空序列
var pLabels1=[];//每个内部标签的数组
变量pLabels2=[];
变量pLabels3=[];
var pLabelsTotal=[];//每列上方总计的数组
对于(变量i=0;i
产生:
嗯,太棒了。由于某些原因,小提琴不起作用,我想链接到资源是错误的。Tnxanyway@anu,对不起,我应该提到小提琴的事。jqplot不允许热链接其js文件。你必须导航到这些文件并将它们缓存在浏览器中,小提琴才能工作。我为这段代码制作了一个JSFIDLE示例,该示例导入了原始的jqPlot脚本,因此如果有兴趣,你可以轻松地看到代码运行,我只需向
pLabelsTotal.push(“+(s1[I]+s2[I]+s3[I])添加一个字符串连接代码>由于某种奇怪的原因,它在每次合计后都显示.00
。不久前,我也提出了类似的解决方案,尽管在我的样本中,总数是硬编码的。如果有兴趣,你可以在这里@Boro查看,这对tnx非常有帮助。我在搜索这篇文章的时候找不到那篇文章issue@Boro:我在重新打印时更新点标签时遇到问题。你能告诉我怎么了吗。条形图得到了正确更新,但标签没有更新。
$(document).ready(function(){
var s1 = [5, 6];
var s2 = [7, 5];
var s3 = [14, 9];
var s4 = [0, 0]; //empty series just for total labels
var pLabels1 = []; // arrays for each inner label
var pLabels2 = [];
var pLabels3 = [];
var pLabelsTotal = []; // array of totals above each column
for (var i = 0; i < s1.length; i++){
pLabels1.push('<div style="border:1px solid gray">'+s1[i]+'</div>');
pLabels2.push('<div style="border:1px solid gray">'+s2[i]+'</div>');
pLabels3.push('<div style="border:1px solid gray">'+s3[i]+'</div>');
pLabelsTotal.push(s1[i]+s2[i]+s3[i]);
}
plot3 = $.jqplot('chart2', [s1, s2, s3, s4], {
// Tell the plot to stack the bars.
stackSeries: true,
captureRightClick: true,
seriesDefaults:{
renderer:$.jqplot.BarRenderer,
rendererOptions: {
// Put a 30 pixel margin between bars.
barMargin: 30,
// Highlight bars when mouse button pressed.
// Disables default highlighting on mouse over.
highlightMouseDown: true
},
},
series:[
{
pointLabels:{
show:true,
labels:pLabels1,
ypadding: -25,
escapeHTML:false
}
},
{
pointLabels:{
show:true,
labels:pLabels2,
ypadding: -25,
escapeHTML:false
}
},
{
pointLabels:{
show:true,
labels:pLabels3,
ypadding: -25,
escapeHTML:false
}
},
{
pointLabels:{
show:true,
labels:pLabelsTotal,
ypadding: 7,
escapeHTML:false
}
}
],
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer
},
yaxis: {
padMin: 0,
min: 0
}
},
legend: {
show: false,
}
});
});