Algo que me incomoda del diagrama de cuerdas que puede precalcular D3 es que hace énfasis en una dirección de los flujos: o se concentra en la proveniencia o se concentra en el destino. Este énfasis determina el ancho de los segmentos de anillo que corresponden cada nodo. La potencial dualidad hace que sea difícil de primerazo saber qué representa. Se presta para confusiones. Hay que aclarar demasiado en el texto de explicación (que en mi experiencia casi nadie lee).

Hoy Santiago Ortiz me mostró ejemplos de diagramas de cuerdas que diferencian en el mismo diagrama ambas direcciones. Aquí hay uno muy bonito (ver al final). Mi idea de solución a ese problema, antes de que Santiago me mostrara los ejemplos, era armar una transición suave de un diagrama a su dual (es decir, al diagrama generado por la matriz de flujo transpuesta). Los layouts de D3 son prácticos para hacer cosas muy puntuales pero se vuelven complicados de manejar cuando se quiere hacer algo que se salga un poco de su estado base. Por fortuna hay personas particularmente generosas que se toman el trabajo de escribir tutoriales muy detallados en Stack Overflow explicando cómo hacer cualquier cosa. Con la ayuda de ese tutorial y el ejemplo que ofrece armé más o menos rápido una versión del diagrama de desplazados con unos botones que permitan hacer la transición de un diagrama a su dual y de regreso. La dejo donde estaba la primera versión.

De todos modos quedé con la sensación de que probablemente hubiera sido mejor haber intentado calcular el diagrama sin usar el layout para poder tener más control sobre este tipo de cosas. Tarea: estudiar con cuidado lo que se puede hacer con SVG.