2012-11-01 5 views
0

Так я два набора данных, позволяет называть их А и Б, а затем один холст XОдин холст, два набора данных

Так первый я делаю это:

var selection=canvas.selectAll("circle") 
        .data(A)      
selection.enter().append("circle") 
selection 
    .attr(...) 
    .attr(...) 

Так что это делает то, что Я хочу и создаю свою первую группу кругов. Но я хочу сделать вторую группу кругов с различными свойствами на основе данных B, так что я попытался сделать следующее:

var selection2 = canvas.selectAll("circle") 
selection2.enter().append("circle").data(B) 
selection2 
    .attr(...) 
    .attr(...) 

однако это не похоже на работу и Вариант2 мешает с выбором одного. Как мне заставить это работать?

+0

'вар Вариант2 = холст .selectAll ("circle") selection2.enter(). append ("circle"). data (B) ' Я думаю, что вы, урожденная d поставить '.data (B)' в первой строке, чтобы он соответствовал первому набору данных – Stephen

+0

и использовать точки с запятой;) – Stephen

ответ

0

просто добавьте их как элементы с другим селектором ... например.

var selection2 = canvas.selectAll(".circleb") 
selection2.enter().append("circle").data(B) 
selection2 
    .classed(".circleb") 
    .attr(...) 
    .attr(...) 

С текущим подходом, вы выбираете все круга элементов (которые в настоящее время привязаны к набору данных А), и пытаетесь пересвязать их набор данных B. Используя другой селектор (как на мой пример) вы создаете второй набор элементов, связанные с набором данных B, оставляя оригинальные элементы связаны с набором данных А.

отредактировано, чтобы исправить ночное время ляп (как было указано в комментариях)

+0

Но «circleb» не является подходящим svg-типом типа «круг» или «прямой», поэтому не использовал бы это, также дайте мне какую-нибудь ошибку? – user1782677

+0

Ничего, я понял. Аргумент для выбора всех может быть тем, чем вы хотите, но тогда append должен принять соответствующий тип svg. Так его: canvas.selectAll (circle2); append (круг) – user1782677

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