如何删除HighCharts条形图中栏之间的空格?

时间:2017-11-22 16:19:51

标签: highcharts bar-chart react-highcharts

enter image description here

我正在尝试使用HighCharts创建一个简单的条形图。

我想删除栏之间的空格。我的研究让我相信属性groundPaddingpointPadding是造成这个空间的原因。但是将两者都设置为0并没有改变任何内容。

const config = {
      chart: {
        type: 'bar',
        spacingTop: 0,
        spacingRight: 0,
        spacingBottom: 0,
        spacingLeft: 0,
        // marginTop: 0,
        // marginRight: 0,
        // marginBottom: 0,
        // marginLeft: 0
      },
      title: {
        text: null
      },
      legend: {
        enabled: false
      },
      credits: {
        text: ''
      },
      xAxis: {
        categories: options.map(option => option.option),
        // lineWidth: 0,
        // tickWidth: 0,
      },
      yAxis: {
        title: {
          enabled: false,
        },
        gridLineWidth: 0,
        tickAmount: 0,
        showFirstLabel: false,
        showLastLabel: false
      },
      series: [{
        data: options.map(option => option.votes)
      }],
      plotOptions: {
        bar: {
          dataLabels: {
            enabled: true
          }
        },
        series: {
          pointWidth: 20,
          groundPadding: 0,
          pointPadding: 0
        }
      }
    };

有什么想法吗?

编辑:

不确定是否相关,但包裹我的图表的红色div是:

<div style={{ width: '100%', height: '100%', margin: 'auto', border: '2px solid red' }}>
    <ReactHighCharts config={config}></ReactHighCharts>
</div>

绿色div的尺寸为:width: 350pxheight: 400px

演示:https://remove-space-between-bar-hbslv6.stackblitz.io

2 个答案:

答案 0 :(得分:1)

groundPaddingpointPadding将在bar内,而不是series

plotOptions: {
  bar: {
    groupPadding: 0,
    pointPadding: 0,
    dataLabels: {
      enabled: true,
    }
  }
},

Demo

答案 1 :(得分:0)

您的代码中有错误。您设置groundPadding而不是groupPadding。此外,如果您使用pointPaddinggroupPadding,则在pointWidth之前设置pointWidth将不会生效,因为pointWidth是根据这两个参数计算的。如果要为所有点设置一个宽度,请仅设置chart.setSize属性。至于每次添加另一个点时增加图表的高度,您可以使用{{1}}函数检查加载事件上的点数并充分更改图表大小。看一下下面的例子。

API参考:
https://api.highcharts.com/class-reference/Highcharts.Chart.html#setSize

例:
http://jsfiddle.net/221k5wLh/