Установите tickInterval в формате ЧЧ: мм / ч для линейного графика HIChart, используя Swift 5.0 - PullRequest
0 голосов
/ 08 июля 2019

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

    let xAxis = HIXAxis()
    xAxis.type = "datetime"
    xAxis.dateTimeLabelFormats = HIDateTimeLabelFormats()
    xAxis.dateTimeLabelFormats.day = HIDay()
    xAxis.dateTimeLabelFormats.day.main = "%l:%M"
    xAxis.min = NSNumber(value: ConverteddateFrom ) //Millisecond 12 AM midnight from starting of the day
    xAxis.max = NSNumber(value: ConverteddateEnd) //Millisecond 12 AM to end of the day
    xAxis.tickInterval =  NSNumber(value: 4 * 3600 * 1000 )
    xAxis.categories = DateList
    options.xAxis = [xAxis]

    let plotoptions = HIPlotOptions()
    plotoptions.series = HISeries()
    plotoptions.series.label = HILabel()
    plotoptions.series.label.connectorAllowed = NSNumber(value: false)    
   //     plotoptions.series.pointStart = 12
   //     plotoptions.series.pointInterval = NSNumber(value: 4)
   //     plotoptions.series.pointIntervalUnit = "AM"

    options.plotOptions = plotoptions

    let line1 = HILine()
    line1.name = "Phase B"
    line1.data =  PhaseBList

    let line2 = HILine()
    line2.name = "Phase R"
    line2.data =  PhaseRList

    let line3 = HILine()
    line3.name = "Phase Y"
    line3.data =  PhaseYList

    options.series = [line1, line2, line3]
    options.responsive = responsive
    options.colors = ["#7CB5EC","#F94F6C", "#FFB647"]

    inputVoltage.options = options

, но я не получил правильную ось X с интервалами.Кто-нибудь может мне помочь в этом?

enter image description here

Я получаю по точкам оси X что-то вроде начальной точки с 20:00 до 16:00 с интервалом в 4 часа.Я ожидаю его с 12 до 12 утра.Также я не вижу данных на графике.

enter image description here

Ответы [ 2 ]

1 голос
/ 09 июля 2019

У вас есть 4-часовой интервал между тиками, поэтому, вероятно, вам нужно изменить dateTimeLabelFormats с day на hour:

xAxis.dateTimeLabelFormats = HIDateTimeLabelFormats()
xAxis.dateTimeLabelFormats.hour = HIHour()
xAxis.dateTimeLabelFormats.hour.main = "%l %P"
xAxis.dateTimeLabelFormats.day = HIDay()
xAxis.dateTimeLabelFormats.day.main = "%l %P"

Справочник по API: https://api.highcharts.com/ios/highcharts/

0 голосов
/ 08 июля 2019

У меня есть решение -

1 - проблема с представлением данных. Первоначально я добавил только массив данных, тогда как мы должны добавить данные вместе с датой их соответствия. Таким образом, он становится массивом массивов, как это -

line1.data = [
    [1562106600000, 0],
    [1562121000000, 0.25]
]

2 - время по оси X с 20:00 до 16:00 из-за времени UTC. Решение:

 options.time = HITime()
 options.time.useUTC =  false
 //options.time.timezone = "Asia/Kolkata" // If you want to set timezon you can

3 - преобразование даты в AM / PM в формате 12 часов.

xAxis.type = "datetime"
xAxis.dateTimeLabelFormats = HIDateTimeLabelFormats()
xAxis.dateTimeLabelFormats.hour = HIHour()
xAxis.dateTimeLabelFormats.hour.main = "%l %P"
xAxis.dateTimeLabelFormats.day = HIDay()
xAxis.dateTimeLabelFormats.day.main = "%l %P"
xAxis.min = NSNumber(value: ConverteddateFrom ) //Millisecond 12 AM midnight from starting of the day

xAxis.max = NSNumber(value: ConverteddateEnd) //Millisecond 12 AM midnight from ending of the day

xAxis.tickInterval =  NSNumber(value: 4 * 3600 * 1000 )
options.xAxis = [xAxis] 

Вот так выглядит мой график - enter image description here

...