2013-09-18 3 views
0

Я использую Highcharts.com для создания диаграммы пауков. Мои данные нормализованы (каждое значение в серии находится в диапазоне [0.0, 1.0]). Может случиться так, что для данной полилинии некоторые/все значения равны 0.0: это делает часть или всю полилинию вырожденной в строке или даже одной точке. См. Следующий минимальный рабочий пример (я бы опубликовал фотографию, но мне еще не разрешено): Я имею в виду Degenerate Case (третья строка). Например, я хотел бы сдвинуть каждую ось так, чтобы она отображала значения в диапазоне [-0.15, 1.0], так что даже в худшем случае у меня есть правильная область. Это улучшило бы читаемость графика. После прочтения онлайн-руководства я попробовал несколько комбинаций offset, padding и т. Д. (С минимальным и максимальным), которые предлагают как-то помочь, но я не имел успеха.Разрешение некоторого пробела в полярных диаграммах с использованием Highcharts

$(function() { 
    $('#container').highcharts({ 
    chart: { 
     polar: true, 
     type: 'line' 
    }, 
    title: { 
     text: 'Budget vs spending', 
     x: -80 
    }, 
    pane: { 
     size: '80%' 
    }, 
    xAxis: { 
     categories: ['Sales', 'Marketing', 'Development', 'Customer Support', 
     'Information Technology', 'Administration'], 
     tickmarkPlacement: 'on', 
     lineWidth: 0 
    }, 
    yAxis: { 
     gridLineInterpolation: 'polygon', 
     lineWidth: 0, 
     min: 0 
    }, 
    tooltip: { 
     shared: true, 
     pointFormat: '<span style="color:{series.color}">{series.name}: <b>${point.y:,.0f}</b><br/>' 
    }, 
    legend: { 
     align: 'right', 
     verticalAlign: 'top', 
     y: 70, 
     layout: 'vertical' 
    }, 
    series: [{ 
     name: 'Allocated Budget', 
     data: [1.00, 0.40, 0.80, 0.50, 0.90, 0.20], 
     pointPlacement: 'on' 
    }, { 
     name: 'Actual Spending', 
     data: [0.00, 0.30, 0.00, 0.80, 0.90, 0.70], 
     pointPlacement: 'on' 
    }, { 
     name: 'Degenerate Case', 
     data: [0.00, 0.00, 0.00, 0.00, 0.00, 0.00], 
     pointPlacement: 'on' 
    }] 
    }); 
}); 

мне было интересно, могут ли такие функции не доступны для полярных карт (я был не в состоянии что-либо подобное в руководстве чтения) или как сделать это, в случае, если я делаю что-то неправильно. Спасибо заранее!

ответ

0

Вы можете установить startOnTick: false и minPadding: <0-1> сделать некоторое пространство ниже нуля, некоторые примеры:

+0

Это еще лучше! Спасибо @ Paweł! –

0

Адрес: min Адрес: yAxis Свой век, который вы ищете?

http://jsfiddle.net/6EGeE/

yAxis: { 
    gridLineInterpolation: 'polygon', 
    lineWidth: 0, 
    min: -1 
}, 
+0

Hi @ra фаил! Спасибо за ответ ... Поверь мне или нет, я попробовал «мин», и он не работал в моем полном проекте ... Интересно, сталкивается ли он с чем-то другим ... Я дам ему еще одну попытку, и я Я также попытаюсь сыграть с тиками, потому что я думаю, что 'min: -0.05' более чем достаточно (в приведенном выше примере он автоматически изменяется в' -0,5', так как интервал тика равен «0,5»). В любом случае, большое спасибо! –

+0

Я пробовал с 'tickInterval: 0.05,' и теперь отрицательная часть такая маленькая, как я хочу, но я получаю слишком много тиков в диапазоне [0.0, 1.0] ... знаете ли вы, есть ли способ скрыть большинство из них? –

+0

Вы не можете стереть их из своих данных перед отправкой на график? – rafaelcastrocouto

Смежные вопросы