Установите минимальное значение оси Y highcharts на 0, если нет отрицательных данных

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

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

Спасибо


person Pryor74    schedule 07.05.2013    source источник
comment
Ссылка на лучшее / правильное решение, если вы используете Highcharts 5.0 и выше stackoverflow.com/a/41105873/2952405   -  person David Chelliah    schedule 07.08.2017


Ответы (5)


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

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

yAxis: {
    softMin: 0
}

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

person Yoav Kadosh    schedule 12.12.2016

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

 yAxis: {
            title: {
                text: 'Title of the y-axis'
            },
            min: 0 // this sets minimum values of y to 0
        },
person devio    schedule 06.01.2014
comment
это всегда будет устанавливать min равным 0. Заданный вопрос: Как я могу сказать highcharts иметь минимальное значение по оси Y, равное 0, только если в данных нет отрицательных значений - person Mustafa; 06.10.2015
comment
Идеальное решение. Сэкономьте место в пользовательском интерфейсе - person sansid1983; 09.05.2017

Я добился этого, создав функцию с помощью 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
    }
  },
});  
person wf4    schedule 27.05.2015

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

yAxis: {
    floor: 0
}

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

person Nathan Poirier    schedule 22.10.2016
comment
в последней версии это работает. мин: 0 также будет работать - person GuyFromChennai; 29.08.2018

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

person Sebastian Bochan    schedule 07.05.2013