jQuery jqPlot библиотека 12-часовой выпуск Инверсия оси Y - PullRequest
4 голосов
/ 20 июня 2011

Я недавно начал использовать jqPlot. Сгенерированные графики выглядят потрясающе, и мне это нравится. Есть кое-что поучиться здесь и там, но в целом это здорово.

Я использую стекированную линейку баров и столкнулся с проблемой Werid. По сути, я хочу 12 часов времени от 0 до 24 часов по оси Y, дней по оси X и график секунд определенной активности на графике. Но я также хочу, чтобы дни (полночь) начинались с верхней части графика и доходили до нижней.

Я могу легко перевернуть данные с помощью обратных 'min' и 'max', но проблема возникает, когда я пытаюсь перевернуть тики; по сути, «время».

У меня по умолчанию для моей серии задана скрытая ось:

seriesDefaults: {
    renderer: $.jqplot.BarRenderer,
    yaxis: 'y2axis'
},

И я ставлю заполнитель ряда (со значениями всех 0, например: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ]) связать с отдельным яксисом для построения отметки даты:

series: [
    { show: true, yaxis: 'yaxis', }
],

Я могу перевернуть значения, изменив минимальное и максимальное значения по оси y по умолчанию и скрыв его:

y2axis:{
    min: 24,
    max: 0,
    showTicks: false
}

Затем я устанавливаю галочки и форматирую их с помощью DateAxisRenderer:

yaxis:{
    renderer:$.jqplot.DateAxisRenderer,
    ticks: ['0', '2', '4', '6', '8', '10', '12', '14', '16', '18', '20', '22', '24'],
    tickOptions: { formatString: '%I:%M %p' }
}

Это создает yaxis со временем с 12:00 до 12:00 и обратно до 12:00 в этом формате. но в порядке возрастания от нижней части графика.

Очевидно, что переключение min и max на 'yaxis' ничего не даст, так как есть только значения заполнителей, и оно только переворачивает значения. Как бы я перевернул значения осей так, чтобы время проходило (снизу) 24, 22, 20 ... и т. Д. И т. Д.?

Заранее спасибо за помощь.

1 Ответ

6 голосов
/ 02 июля 2011
  1. Заменить:

    ticks: ['0', '2', '4', '6', '8', '10', '12', '14', '16', '18', '20', '22', '24']
    

    С:

    ticks: ['24', '22', '20', '18', '16', '14', '12', '10', '8', '6', '4', '2', '0']
    
  2. Заменить:

    y2axis:{
        min: 24,
        max: 0,
        showTicks: false
    }
    

    С:

    y2axis:{
        min: 0,
        max: 24,
        showTicks: false
    }
    

Это приведет к нормальной сортировке оси y, но с использованием обратной последовательности тиков.

...