javascript - 如果 highcharts 中的值为 0,则每列的动态宽度

标签 javascript jquery css plugins highcharts

我是 highcharts 插件的新手,如果值为空,我需要为每列设置不同的宽度。

series: [{   
 name: 'Jane',
  data: [1, 0, 4]
 }, {
  name: 'John',
  data: [5, 7, 3]
 }]

我需要这样显示

I need this

我一直在搜索文档,但没有找到任何没有大量代码的东西。

我实现了这个,但它不会动态上传/调整大小。

http://jsfiddle.net/5vgjztk0/

谢谢

最佳答案

您可以使用类似 merimekko 图表的东西。

(function(H) { 
    var each = H.each;

       var xStart = 0;
var rememberX = 0;       
    H.wrap(H.seriesTypes.column.prototype, 'drawPoints', function(proceed) {
        var series = this;
        if(series.data.length > 0 ){
            each(this.data, function(point) {
                point.shapeArgs.width = series.xAxis.translate(point.x) - series.xAxis.translate(xStart);
                point.shapeArgs.x = series.xAxis.translate(point.x) - point.shapeArgs.width; 
                xStart = point.x;
            });
            xStart = 0;
        }
        proceed.call(this);
    })
})(Highcharts)

演示:

关于javascript - 如果 highcharts 中的值为 0,则每列的动态宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38059524/

相关文章:

javascript - 根据 Ruby on Rails 中的另一个下拉菜单更改下拉菜单

jquery - 防止表单基于宽度提交

html - 我不知道使主题隐藏和可见的选择器

css - 如何突破基础行并坚持视口(viewport)的右边缘

javascript - Protractor 和 Jasmine : How can I test redirects?

javascript - 如何重定向到选择相同选项的不同页面?

javascript - 创建 Canvas 光标,无法存储颜色

javascript - Jquery多加减脚本

jquery - 如何在网站全屏时将选择语句显示为列表?

jquery - 隐藏在div后面的bootstrap 4 datepicker