在 Highcharts 中保持固定大小的条形图

keep fixed size of the bars in Highcharts

我想保持相同大小的条形。不管有多少都有价值。 这是我想要所有条形的尺寸。

当添加四个值时,条形变小。

我希望所有的条形都一样大。不管我必须滚动查看其他栏(这就是我想要的)。

这是我的代码: http://jsfiddle.net/Laxfsbtb/

$('#container').highcharts({
        chart: {
            type: 'bar'
        },

         series: [{
          name: 'text1',
          data: [1000, 950,920,880,850,234],
          color: "#FF0000"
      }, {
          name: 'text2',
          data: [800,770,750,740,730,4324],
          color: "#000000"

      }, {
          name: 'text3',
          data: [600,540,535,500,400,324],
          color: "#00FF00"

      }]
    });
});

这可以通过 pointWidth 参数完成,例如:

plotOptions: {
  series: {
    pointWidth: 20 //width of the bar/column/point.
  }
},

要允许 scrollbar,您可能应该升级到 highstock,但这只能横向使用。或者您可以设置一个 div 允许图表在内部 "larger" 并滚动 div window.

不确定您要查找的内容,但这可能会有所帮助。

我刚才整理了一个例子,根据柱的数量调整图表的高度,使用一些预设参数:

var barCount     = chartData.length; 
var pointWidth   = 20;
var marginTop    = 60;
var marginRight  = 10;
var marginBottom = 50;
var marginLeft   = 100;
var pointPadding = 0.3;

var chartHeight = marginTop 
            + marginBottom 
            + ((pointWidth * barCount) * (1 + groupPadding + pointPadding));

因此,告诉它您想要条形的大小、它们之间的填充量、图表顶部和底部的边距以及您有多少数据点。

条形将保持相同的大小和间距,同时图表本身会增长以适应它们。

示例:

要查看它是否有效,请更改此行中的 12:

var chartData = randomData(12, true);

给你想要的任何号码。

((编辑

由于您使用的是分组数据,因此您必须稍微更改一下数学运算 bit.you需要考虑组数,然后将 hat 乘以 groupPadding,然后添加到数字中点数 * pointPadding.

您还必须使计算数据点的数量稍微复杂一些。