微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – jqplot – 单个值,而不是堆积图表中的总计

在堆积条形图中,我们可以显示每个堆栈中每个系列的总数,就像这样

但是我想要显示每个系列的值,而不是这样的总数(请忽略这两个样本具有不同数量的系列的事实)

另外我想在顶部显示堆栈的总数.
我的意思是,如果你看第一张图,在第一个柱中,值是5,15(5 10),24(15 9).
我想要的结果应该像第二个图形,其中第一个柱的值类似于10,9,最后总共位于前19个
这个图书馆可以吗?

解决方法

这里有点黑客攻击.由于你想为每个系列增加一个标签,我引入了一个“空”系列.不过,它可以很好地复制你想要的东西.小提琴 here.
$(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,labels:pLabels3,labels:pLabelsTotal,ypadding: 7,escapeHTML:false
            }
        }
    ],axes: {
      xaxis: {
          renderer: $.jqplot.CategoryAxisRenderer
      },yaxis: {
        padMin: 0,min: 0
      }
    },legend: {
      show: false,}      
  });
});

生产:

原文地址:https://www.jb51.cc/jquery/181537.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐