Установка iOS-Charts Float для целочисленной оси Y

Я попытался установить yAxis в целое число, используя NSNumberFormatter,

yAxis.valueFormatter = NSNumberFormatter()
yAxis.valueFormatter.minimumFractionDigits = 0

но проблема в том, что я получаю повторяющиеся значения yAxis - 0, 1, 2, 2, 3, 4 и 5. Как это можно устранить?

введите здесь описание изображения

Это проблемы, с которыми я сталкиваюсь. Я попытался установить

    barChart.leftAxis.axisMaximum = 5.0
    barChart.leftAxis.axisMinimum = 0.0
    barChart.leftAxis.customAxisMin = 0
    barChart.leftAxis.customAxisMax = 5.0

но не помогает какие-либо предложения?


person Ash    schedule 20.10.2015    source источник
comment
На этот вопрос был дан ответ здесь: stackoverflow.com/ вопросы/31318858/   -  person HannahCarney    schedule 18.11.2015


Ответы (1)


Этого нельзя избежать, потому что вы не разрешаете дробную цифру.

minimumFractionDigits = 0 означает отсутствие десятичного числа, если это возможно, например, 2.1 и 2.0, они приведут к 2.1 и 2 (если maxFractionDigits = 1)

Вам нужно предоставить информацию о исходном значении и значении maxFractionDigits.

ИЗМЕНИТЬ:

метка оси Y вычисляется по умолчанию через internal func computeAxisValues

он вычисляет интервал на основе вашего максимального и минимального значения и количества меток.

если _yAxis.isForceLabelsEnabled включен, то он будет читать labelCount и просто использовать (max-min)/(labelCount-1) для расчета интервала. По умолчанию он отключен.

Когда isForceLabelsEnabled имеет значение false, у него есть небольшой алгоритм для расчета того, как правильно получить красивое число.

Взгляните на internal func computeAxisValues, чтобы узнать, что соответствует вашим потребностям.

Обновление для второй части вопроса:

  1. вы не должны касаться осиMaximum или min
  2. включить forceLabelsEnabled
  3. измените yAxis.labelCount на 6 или 5 или как вам больше нравится
  4. включить xAxis.wordWrapEnabled
person Wingzero    schedule 21.10.2015
comment
Извини, что я тебя не понял. Я не хочу отображать десятичное число на моей оси Y. Я просто приведу пример. Мне нужно отобразить рейтинг по моей оси y, рейтинг может варьироваться от 0 до 5, но значение может быть [2,1, 4,3, 5, 3,5, 3, 2, 1], что-то вроде этого. Моя ось y не должна отображать десятичную дробь. Я попытался установить barChart.leftAxis.axisMaximum = 5,0 barChart.leftAxis.axisMinimum = 0,0 barChart.leftAxis.customAxisMin = 0 barChart.leftAxis.customAxisMax = 5,0, но не помогает. - person Ash; 21.10.2015
comment
ответ обновлен. вы должны использовать leftAxis.customAxisMin/Max между прочим. - person Wingzero; 21.10.2015
comment
это не работает. Любая работа вокруг? Обновил вопрос. - person Ash; 21.10.2015
comment
ответ обновлен. Кстати, вы должны уметь и должны читать computeAxisValues, это дает все, что вам нужно - person Wingzero; 21.10.2015
comment
У меня есть еще один вопрос. Есть ли способ не показывать значение, когда у нас есть «0» в качестве рейтинга. - person Ash; 21.10.2015
comment
скажем, я получаю оценку «0», так как функция drawValuesEnabled включена, она показывает «0» в верхней части оси x. Это их способ избежать этого? Если значение равно нулю, то ничего не отображать, иначе какую бы оценку мы ни получили. - person Ash; 21.10.2015
comment
просто переопределите drawValues, чтобы игнорировать 0 - person Wingzero; 21.10.2015
comment
Вы имеете в виду, нужно ли мне создавать подкласс ChartDataRendererBase и переопределять значения drawValues? - person Ash; 21.10.2015
comment
Просто подкласс, который вы используете - person Wingzero; 21.10.2015
comment
Привет.. Мне нужно больше информации об использовании iOS-Chart, возможен ли другой способ связи? Если я получу вашу электронную почту или что-то в этом роде. - person Ash; 21.10.2015
comment
Извините, я просто отвечаю на вопросы на github и SO, когда у меня есть время. Но вы можете попробовать прочитать код. Они дают всю информацию и пробуют appcoda.com/ios-charts-api-tutorial< /а> - person Wingzero; 21.10.2015
comment
Все в порядке, нп .. Я продолжаю задавать вопросы здесь .. :) - person Ash; 21.10.2015
comment
Для игнорирования «0», не могли бы вы сообщить мне, что класс, в котором я рисую диаграмму, является подклассом UIViewController. - person Ash; 21.10.2015
comment
взгляните на рендерер оси Y drawValues - person Wingzero; 21.10.2015
comment
Хорошо.. проверим и свяжемся с вами. Спасибо - person Ash; 21.10.2015