2012-06-21 28 views
6

Soy muy nuevo en SVG (usando D3.js para llamar a todo). Recientemente, acabo de entrar en una gran limitación con un proyecto en el que estoy trabajando. Quiero poder hacer clases "g" para cada categoría de datos con la que estoy trabajando. Lamentablemente, estoy obteniendo mis datos de un archivo XML que solo conecta datos de una manera (por ejemplo, persona1 ---> persona2, pero no persona2 ---> persona1). Lo que me gustaría hacer es colocar cada forma generada a partir de mis datos en la clase raíz Y la clase con la que se está conectando. Si pudiera agregar esta forma a dos o más clases (como g class = person1 y person2), esa sería la solución más rápida, creo ... ¿Pero es posible algo así? ¿Puedo establecer una forma de SVG para dos o más clases? ¿O lo sobreescribirá cuando defina otros nuevos?Múltiples clases en SVG

Realmente espero que alguien pueda entender lo que estoy preguntando. Es un poco difícil verbalizar mi problema sin revelar todos los detalles de mi proyecto final.

Respuesta

11

Sí, puede establecer varias clases. Por ejemplo,

<g class="person1 person2"> 

O, en D3:

g.attr("class", "person1 person2"); 
+1

Esta es una noticia increíble. La solución alternativa que mi jefe me sugirió probablemente me lleve casi un mes (no domina JS, D3 o inglés, por lo que fue muy difícil explicar por qué su enfoque era demasiado voluminoso). Con este conocimiento, puedo terminar dentro de una semana más o menos. – 1080p

+2

¡Además, gracias por todo su trabajo! Acabo de obtener una pasantía de visualización de datos hace unas semanas. Me dieron la tarea de trabajar en una visualización de red altamente dinámica. Después de algunas investigaciones, fui con d3 como mi biblioteca principal de dibujo. Su galería github y los tutoriales que ha publicado me han llevado a través de cada paso de este proyecto. – 1080p

0

Una nota más: Si está llamando a una función dentro de un archivo:

.attr("class",function(d) { return d.person1+" "+ d.person2;} ) 
Cuestiones relacionadas