верхний график столбца с динамическим выравниванием столбца данных - PullRequest
0 голосов
/ 10 февраля 2012

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

У меня есть граф столбцов, к которому я добавляю данные динамически (с помощью jQuery, анализирующего файл XML).

по какой-то причине, после добавления данных, выравнивание различных рядов немного сбивается. проблема исправляется после того, как я переключаю одну из серий, становясь видимой / невидимой (щелкая серию в легенде).

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

вот изображение: enter image description here

желтая серия является последней серией, добавленной к графику, красная и фиолетовая серии выстраиваются в порядке после переключения видимости одной из 5 серий.

любая помощь будет принята с благодарностью!

ОБНОВЛЕНИЕ с информацией о данных:

  • у меня есть 5 серий данных и 10 категорий по оси x
  • я создаю многомерный массив данных при разборе файла XML
  • длина массива равна 5, причем каждый из этих 5 индексов содержит массив длиной 10
  • так выглядит массив после заполнения данными:

index #: 0 value: 0,0,0,0,0,0,0,0,0,0

index #: 1 value: 180,210,0,0,0,0,0,0,180,210

index #: 2 value: 22,4,0,0,0,0,0,0,22,4

индекс №: 3 значение: 0,0,0,0,0,0,0,0,0,0

index #: 4 value: 200,30,0,0,0,0,0,0,4,0

Я добавляю данные в диаграмму со следующим кодом JS:

for (var c_ary_bs = 0; c_ary_bs < ary_bs_schedule_orig.length; c_ary_bs++) {
        chart.series[c_ary_bs].setData(ary_bs_schedule_orig[c_ary_bs]);
    }

надеюсь, это поможет, спасибо!

ОБНОВЛЕНИЕ 2, дополнительная информация

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

    chart.series[0].setData([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
    chart.series[1].setData([180, 210, 0, 0, 0, 0, 0, 0, 180, 210]);
    chart.series[2].setData([22, 4, 0, 0, 0, 0, 0, 0, 22, 4]);
    chart.series[3].setData([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
    chart.series[4].setData([200, 30, 0, 0, 0, 0, 0, 0, 4, 0]);
    alert('done')

когда срабатывает оповещение, столбцы графика выровнены правильно, после того, как я нажму «ок», чтобы закрыть оповещение, возникает проблема выравнивания, как показано на предыдущем изображении.

1 Ответ

0 голосов
/ 13 февраля 2012

Я обнаружил несовершенное исправление:

- установка marginLeft диаграммы на 70 облегчает проблему с несоответствующими столбцами

- по какой-то причине отображается текст заголовка оси yнад галочками оси y, поэтому я использую следующее, чтобы сделать его видимым:

 yAxis: {
        title: {
            x:-20,
            text: 'Schedule Days'
        }
    }

(обратите внимание на x: -20)

Что странно, когда я переключаю один изсерия (нажав на нее в легенде) текст заголовка yAxis возвращается туда, где он и должен быть (который теперь на 20px отключен из-за вышеуказанного исправления).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...