9 votos

¿Cómo se crea este gráfico de los "Estados Unidos de Reddit"?

A continuación se muestra un gráfico de la página 202 del libro de Christian Rudder Dataclysm aunque fue hecha por James Dowdell. Ilustra las relaciones entre varios de los 200 principales subreddits, que son áreas de interés en reddit.com donde los usuarios pueden enviar enlaces, comentarios y votos. Son similares a las etiquetas de este sitio. El tamaño de las regiones del subreddit representa su popularidad. Los subreddits están agrupados por comentarios cruzados, y el tono más oscuro representa el porcentaje de personas que se quedan en ese subreddit y no publican en otros.

¿Se trata simplemente de una partición de Voronoi estándar, con algo de coloración para la insularidad, o es algo más complicado?

¿Cómo se puede hacer uno de estos?

United States of Reddit

3 votos

No lo sé, pero mi opinión es que es un Cartograma de Voronoi --uno ajusta los centros de los puntos (no mostrados) hasta que cada una de las áreas de la región de Voronoi sea proporcional a un valor predeterminado.

7voto

quanta Puntos 31979

En primer lugar, soy James Dowdell, así que estoy especialmente cualificado para responder (he creado una cuenta para responder, puedo confirmar mi identidad si alguien está preocupado).

La respuesta sencilla es, en efecto, la que otros han conjeturado: se trata de una http://en.wikipedia.org/wiki/Voronoi_diagram . Usamos el mismo concepto en la página 194, donde los sitios de voronoi son los pares de latitud y longitud listados por craigslist.org .

Por desgracia, este conocimiento en sí mismo no es muy útil. Con el gráfico de Craigslist, está claro qué valores utilizar para los sitios. Pero, ¿qué truco mágico utilizó Dataclysm para asignar las coordenadas x/y en este gráfico?

La respuesta a esto es mucho más complicada de lo que la mayoría de la gente espera, y no puedo decir que recomiende volver a hacer lo que hicimos. Apuesto a que alguien más aquí podría recomendar un enfoque que obtiene más o menos el mismo resultado y es mucho más simple.

La verdad es que:

Christian y yo estuvimos más de 3 meses creando gráficos para este capítulo, que nunca pudimos hacer funcionar. Pero, los resultados de un enfoque a menudo se alimentaban del siguiente.

  1. Lo más crítico, por desgracia, tiene que ver con una técnica y unos activos de imagen que no tengo la libertad de explorar o compartir de manera significativa, porque todavía podemos utilizarlos de alguna manera. Lo que sí diré es que tomamos una complicada http://en.wikipedia.org/wiki/Graph_theory#Graph que recopilamos con permiso a partir de los datos de Reddit, que implican userids y subreddits, y jugamos con este gráfico y varios derivados del mismo dentro de http://gephi.github.io/ (Últimamente soy especialmente fan de "OpenOrd"). De hecho, obtuvimos una imagen magnífica -habría sido el punto culminante del libro si se hubiera publicado-, pero aunque habría funcionado bien en un sitio web, no se imprimía bien en un libro: no había suficiente espacio ni resolución. En un principio, Christian pensó en incluirla en el libro como un desplegable, pero no era rentable para Crown.

  2. Sin embargo, en este punto teníamos una imagen que tenía coordenadas x/y para los subreddits y estaban al menos relativamente ordenados correctamente en el espacio x/y. También teníamos prisa porque se acercaba la fecha límite de publicación. Soy un programador en primer lugar y un tipo de datos en segundo lugar, por lo que para acomodar los límites extremadamente apretados de la página en el libro y el tiempo restante en el reloj, mi instinto fue escribir un programa en Box2D que simuló los límites de la página como paredes, puso una versión extremadamente reducida del gráfico en el interior, y simuló el crecimiento de los nodos (no es natural para Box2D, por cierto, se espera que los cuerpos rígidos que no cambian) hasta que todo estaba al ras contra las paredes y entre sí. Los nodos crecían a un ritmo proporcional al tamaño del subreddit que representaban, lo que significaba que los tamaños finales también serían proporcionales de la misma manera. Lamentablemente no tengo una captura de pantalla de la ejecución real que produjo el gráfico en el libro, pero la ejecución para un gráfico relacionado no publicado la adjunto aquí: captura de pantalla del programa box2d mientras se ejecuta

  3. El resultado de eso no se veía nada bien, pero me dio algo muy valioso: los sitios de voronoi. Tomé los centroides de los polígonos box2d resultantes, los sometí a un proceso estándar, y eso es lo que se utilizó para el gráfico en el libro. Las etiquetas de texto se aplicaron a mano en photoshop, creo.

Por cierto, la coloración de las celdas estaba relacionada con una estadística que habíamos desarrollado para formar el gráfico en (A)

1 votos

Bienvenido a la página web. Esto se aproxima a cómo podría haber intentado hacerlo. Utilice cualquier diseño de gráfico para asignar coordenadas xy a los nodos. (Puede ser posible en algunos diseños basados en la fuerza para hacer que las células aproximadamente el tamaño que desee sobre la base de especificar los pesos de los bordes y la masa, pero dudo que será exacta). Después de crear las áreas de voronoi del diseño original del gráfico, entonces yo usaría una herramienta de cartograma, como Scapetoad , para que las áreas finales sean proporcionales a la estadística de interés. Esto termina siendo bastante similar al programa que sugiere en box2d.

0voto

Depicus Puntos 23

Se parece más a un problema de nube de palabras con apariencia de polígono de Voronoi. Hay que utilizar la frecuencia de las palabras para decidir la ubicación (una frecuencia alta significa el centro). Mientras se determine la ubicación de las palabras, dibujar el polígono de Voronoi no debería ser un gran problema.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X