2013-07-12 3 views
4

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

Вот мои текущие настройки графика.

nv.addGraph -> 
    chart = nv.models.discreteBarChart() 
    .x (d) -> 
     return d.label 
    .y (d) -> 
     return d.value 
    .staggerLabels(false).showValues(false) 
    .color(['#56bd78']).tooltips(false) 
    .margin({top: 0, right: 0, bottom: 30, left: 0}) 

    chart.tooltipContent (key, x, y, e, graph) -> 
    return '<h3><span>' + parseFloat(y) + '</span><em>' + 
      key + '</em></h3>' 

    chart.xAxis.tickFormat (d) -> 
     return d3.time.format('%b')(new Date('2013/'+d+'/01')) 
    # chart.xAxis.tickPadding({top: 0, bottom: 0, left: 20, right:30}) 

    d3.select(element).datum(data).transition().duration(500).call(chart) 

    nv.utils.windowResize(chart.update) 
    return chart 

Я предполагаю, так как я не могу найти какие-либо вопросы, отправленные по данному конкретному вопросу, это, вероятно, так просто мне не хватает его. Заранее спасибо.

+0

NVD3 будет устанавливать ширину таким образом, чтобы использовался весь диапазон графика. AFAIK вы не можете изменить это - NVD3 не очень гибкий, если вы хотите выйти за рамки того, что он предоставляет. –

+0

Если вы можете изменить ширину, можно ли установить прописку между столбцами – nanno

ответ

0

Чтобы ответить на мой вопрос, мне пришлось «вручную» изменить значения с помощью jQuery, чтобы отобразить график, как я этого хотел.

$(element+' rect.discreteBar').attr('transform', 'translate(17)').attr('width', 20) 
$(element+' .nv-axis g text').attr('transform', 'translate(0, 5)') 

Ларс отметил, библиотека динамически вычисляет ширину в зависимости от количества элементов, что имеет смысл.

10

Попробуйте chart.groupSpacing(0.5) и соответствующим образом измените значение, чтобы узнать, разрешает ли он проблему.

+2

(index): 101 Uncaught TypeError: barChart.groupSpacing не является функцией – rohitsakala

+0

Не является функцией для модели 'linePlusBarChart' слишком – saawsann

3

Хороший способ решить это с помощью CSS:

.nv-bars rect { 
    width: 20px; 
} 

Это то, что мы сделали в нашей заявке, и она работала великолепно.

+0

Я вижу класс .nv -бар (сингулярный) для хотя бы некоторых типов диаграмм – PeterVermont

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