2014-01-27 2 views
0

Я использую D3js и у меня есть данные, что выглядит следующим образом:D3.js- Связывание имени объекта с его значением

var data1=[{name:'fruits', value:2},{name:'veggies', value:3},{name:'milk', value:5},{name:'empty', value:0}]; 

например: fruits- красного цвета квадрат veggies- зеленый цвет квадратного молоко - белый цвет квадрат

Я создал что-то вроде квадрата с разными цветами для каждого имени в данных, чтобы я мог применять к нему различные пути перехода. Я хочу сгенерировать количество квадратов для каждого имени в данных на основе их значений. Например, если я назову данные с именем «молоко», я хочу, чтобы 5 белых квадратов (значение молока было 5) генерируется вместо одного квадрата со значением 5.

Вот моя скрипка: http://jsfiddle.net/25QHv/2/

Я попробовал пару способов сделать это, но ничего на самом деле не работало. Пожалуйста, помогите мне ....

Заранее спасибо ...

+0

Цикл от 1 до значения? Не уверен, что вы пытаетесь сделать здесь. –

+0

Когда я вызываю имя объекта, например: fruit, я хочу создать квадраты 2 (его соответствующие значения). var da = ["фрукты", "veggies", "milk"]; var dat1 = [1,3,5]; // присвоение значений var data1 = ["milk", "veggies"]; // эти данные должны генерировать 5 белых квадратов и 3 зеленых квадрата. – user2928041

+0

Я не уверен, что вы делаете в своем jsfiddle - есть несколько вложенных вызовов, которые создают данные и настраивают таймеры ... В принципе, вы бы нажимали один и тот же элемент данных, но часто хотите, чтобы он был в массиве вы переходите к '.data()' D3. –

ответ

1

Попробуйте перевести данные в следующем формате?

["fruits", "fruits", "veggies", "veggies", "veggies", "milk", "milk", "milk", "milk", "milk"] 

Демонстрация: http://jsfiddle.net/P89Fk/

+0

Большое вам спасибо ... Только то, что я хотел. – user2928041

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