蜱之间的高度不均匀的空间

时间:2016-08-18 11:32:37

标签: javascript highcharts

我有带对数y轴的条形图。当我将y轴设置为接近0(例如0.1)时,刻度之间的间距看起来相等。但是当我根据要求将min设置为1000时,图表会改变其行为,并且刻度之间的间隔变得不均匀。这是一个示例https://jsfiddle.net/2vh9h2q3/。这是代码本身:

  new Highcharts.Chart({
    "chart": {
      "zoomType": "xy",
      "renderTo": $('#container')[0],
      "type": 'bar'
    },
    "title": {
      "text": null
    },
    "subtitle": {
      "text": null
    },
    "credits": {
      "enabled": false
    },
    "exporting": {
      "enabled": false
    },
    "xAxis": {
      "categories": ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
      "title": {
        "text": null
      },
      "labels": {
        "align": "left",
        "x": 10
      },
      "lineWidth": 0,
      "tickWidth": 0
    },
    "yAxis": {
     "type": "logarithmic",
      "min": 1000,
      "labels": {
        "formatter": function() {
          return this.value % 1000 === 0 ? this.value / 1000 + "k" : this.value;
        }
      },
      "title": {
        "text": null
      }
    },
    "tooltip": {
      "useHTML": true,
      "shadow": false
    },
    "plotOptions": {
      "bar": {
        "dataLabels": {
          "enabled": false
        }
      },
      "series": {
        "cursor": "pointer"

      }
    },
    "series": [{
      "showInLegend": false,
      "data": [4951,1200,0,0,196484,179580,0,0,0,324,87014, 11]
    }]
  });

我想将min留作1000并在刻度之间得到均匀的空格。我尝试使用刻度选项,但它没有成功

1 个答案:

答案 0 :(得分:1)

如果您想手动设置刻度线的位置以使它们彼此之间的距离相同,您可以使用tickPositions或tickPositioner:

"yAxis": {
  "type": "logarithmic",
  "min": 1000,
  "labels": {
    "formatter": function() {
      return this.value % 1000 === 0 ? this.value / 1000 + "k" : this.value;
    }
  },
  "tickPositions": [3, 4, 5, 6],
  "title": {
    "text": null
  }
},

在这种情况下,tickPositions数组中的数字是10的幂。因此,例如,如果您的值等于3,您将看到10 ^ 3 = 1000值的刻度。

在这里您可以找到一个如何工作的示例: https://jsfiddle.net/2vh9h2q3/1/

如果你想使用对数轴,你需要记住你不应该使用小于或等于0的值。