2016-01-25 5 views
2

Я пытаюсь построить простую гистограмму, используя основанную на чтении в CSV-данных. Сейчас я просто включаю данные в свой скрипт. Когда я пытаюсь запустить его, я получаю эту ошибку:NV.D3 Невозможно прочитать свойство 'length' undefined

Uncaught TypeError: Cannot read property 'length' of undefined 

Вот сценарий:

var data; 

function showChart() { 
    var theCsv = 
    "name,value\n" + 
    "Foo,43\n" + 
    "bar,76\n" + 
    "foo2,88\n" + 
    "bar2,59\n"; 
    var csvString; 
    var content = [{ 
    key: "totals", 
    values: [] 
    }]; 

    var input = d3.csv.parse(theCsv, function(d) { 
    return { 
     name: d.name, 
     value: d.value 
    }; 
    }); 

nv.addGraph(function() { 
    var chart = nv.models.discreteBarChart() 
     .x(function(d) { 
     return d.name 
     }) 
     .y(function(d) { 
     return d.value 
     }) 
     /*.showvalues(true)*/ 

    d3.select('#chart svg') 
     .datum(input) 
     .transition(1000) 
     .call(chart) 

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

    }); 

    fileDisplayArea.innerText = csvString 
} 

Насколько я могу сказать от отладки, ошибка происходя на .call(chart) линии, но я не знаю, в чем проблема. Я нашел пару ссылок, говорящих о версии D3, но я пробовал несколько разных, и я все еще получаю ошибку.

Адрес JSFiddle.

ответ

4

Похоже, вам нужно обернуть ваши данные в другой объект следующим образом:

var input = d3.csv.parse(theCsv, function(d) { 
    return { 
     name: d.name, 
     value: d.value 
    }; 
    }); 

// get it into the form required by `nvd3` 
input = [{ key: "Some Key", values: input }] 

Вот updated fiddle с одной дополнительной линии выше добавил.

Не удалось найти документацию на , почему, но это, по-видимому, используемый шаблон (на основе this example on the site).

+1

Отлично, большое вам спасибо! – Andrew

+0

@adilapapaya, пожалуйста, проверьте мою проблему, это тоже самое http://stackoverflow.com/questions/38635193/how-to-resolve-an-error-like-typeerror-cannot-read-property-length-of-undefi?noredirect = 1 # comment64654995_38635193 –

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