javascript - examples - Transición de sunburst en D3.js
jquery d3 (1)
El error de análisis es causado por una interpolación de ruta ingenua del comando de arco elíptico de SVG, A. Los arcos elípticos tienen la forma "rx ry x-axis-rotation large-arc-flag sweep-flag xy". Si utiliza la interpolación de ruta predeterminada en los comandos de arco, es posible que inadvertidamente intente interpolar uno de los indicadores, que solo puede tener el valor cero o uno. Este error siempre ocurrirá si habilita o deshabilita el innerRadius.
No debe usar el interpolador de cadena predeterminado para los datos de ruta d3.svg.arc ; los arcos se deben interpolar en coordenadas polares usando una interpolación personalizada . Aquí hay dos ejemplos cortos que demuestran cómo interpolar arcos en el espacio de datos:
Estoy haciendo una visualización basada en datos con d3. Tengo una estructura similar al resplandor solar (pero con una sola capa, una especie de gráfico con un agujero en el medio).
Al hacer clic en la flecha del teclado, los datos visualizados cambian y, por lo tanto, aparece el resplandor solar. En particular, el innerRadius cambia dependiendo de una propiedad particular de los datos y algunos elementos se agregan, eliminan y actualizan.
No puedo hacer la transición correcta de uno a otro sunburst. La transición está casi bien aparte de la actualización del elemento existente.
Por ejemplo, supongamos que tengo elementos comunes en los dos siguientes datos para visualizar, como
[{''name'': ''A'', ''value'': 100}, {''name'': ''B'', ''value'': 100}, {''name'': ''C'', ''value'': 100}]
y
[{''name'': ''A'', ''value'': 300}, {''name'': ''D'', ''value'': 200}].
En el ejemplo anterior, me gustaría que el arco correspondiente al elemento A se actualice sin problemas, ya que está en el ejemplo Sunburst en el sitio web d3, los elementos B y C desaparecen (y logré hacerlo) y los elementos D aparecen sin problemas como un arco creciente, o algo así.
Intenté mucho, pero siempre obtengo registros de consola como los siguientes:
Error: Problem parsing d="M307.2125548508473,-80.28703629255259A350,350 0 0.816469152,1 -241.27474698802394,61.83978850098657L-172.92635975175665,38.77767308406868A238.60164101523165,238.60164101523165 0 0.816469152,0 210.15560219262875,-60.13103059122014Z"
Creo que hay un problema cuando los datos cambian entre una y otra, pero no sé cómo resolverlo.