Подтвердить что ты не робот

Установите минимальное значение y для оси Y для высоких диаграмм, если нет отрицательных данных

У меня проблема с highcharts, где у меня есть несколько разных диаграмм, создаваемых вызовами JSON.

Для большинства этих диаграмм мне нужно установить минимальное значение оси Y в 0, однако есть несколько случаев, когда нужно показывать отрицательные значения. Как я могу сказать, что высокие диаграммы имеют минимальное значение оси y 0, только если в данных нет отрицательных значений, возможно ли это?

Спасибо

4b9b3361

Ответ 1

Вы можете добавить к оси y:

 yAxis: {
            title: {
                text: 'Title of the y-axis'
            },
            min: 0 // this sets minimum values of y to 0
        },

Ответ 2

Я достиг этого, создав функцию, используя setExtremes

var setMin = function () {
  var chart = this,
  ex = chart.yAxis[0].getExtremes();

  // Sets the min value for the chart 
  var minVal = 0;

  if (ex.dataMin < 0) {
    minVal = ex.dataMin;
  }

  //set the min and return the values
  chart.yAxis[0].setExtremes(minVal, null, true, false);
}

то в вашей диаграмме вы вызываете ее так:

$('#container').highcharts({ 
  chart: {
    events: {
      load: setMin
    }
  },
});  

Ответ 3

Опция, которую вы ищете, называется softMin и была представлена ​​в версии 5.0.1. Документы описывают это следующим образом:

Мягкий минимум для оси. Если минимум данных серии больше чем это, ось останется на этом минимуме, но если данные серии минимум меньше, ось будет гибкой, чтобы отображать все данные.

yAxis: {
    softMin: 0
}

http://api.highcharts.com/highcharts/yAxis.softMin

Ответ 4

Вы можете подготовить свою собственную функцию, проверка которой отрицательная, или нет, а затем установить соответствующие тики. Чтобы добиться этого, вы должны использовать tickPositioner http://api.highcharts.com/highcharts#yAxis.tickPositioner

Ответ 5

Вы можете установить "пол", это определяет минимально возможное значение min. Когда добавляются отрицательные значения, они не будут видны! (http://api.highcharts.com/highcharts/xAxis.floor)

yAxis: {
    floor: 0
}

Я знаю, что этот вопрос давно задан, и этого свойства в то время не существовало. Но я просто сталкиваюсь с этой проблемой, и я думаю, что другие будут рады, что вам не придется искать.