Bagaimana grafik "Amerika Serikat Reddit" ini dibuat?

9

Di bawah ini adalah grafik dari hal. Dataclysm milik Christian Rudder , meskipun dibuat oleh James Dowdell. Ini menggambarkan hubungan antara berbagai 200 subreddit teratas, yang merupakan bidang yang diminati reddit.com di mana pengguna dapat mengirimkan tautan, komentar, dan suara. Ini mirip dengan tag di situs ini. Ukuran wilayah subreddit mewakili popularitas mereka. Subreddits dikelompokkan berdasarkan komentar silang, dan rona yang lebih gelap mewakili persentase orang yang berada di dalam subreddit itu dan tidak memposting ke orang lain.

Apakah ini hanya partisi Voronoi standar, dengan beberapa pewarnaan untuk kepicikan, atau itu sesuatu yang lebih terlibat?

Bagaimana orang bisa membuat ini?

Amerika Serikat Reddit

Dimitriy V. Masterov
sumber
3
Saya tidak tahu, tetapi dugaan saya adalah ini adalah kartogram Voronoi --satu menyesuaikan titik pusat (tidak ditampilkan) sampai masing-masing wilayah wilayah Voronoi sebanding dengan nilai yang telah ditentukan.
whuber

Jawaban:

7

Pertama, saya James Dowdell, jadi saya cukup memenuhi syarat untuk menjawab (membuat akun untuk menjawab, dapat mengkonfirmasi identitas jika ada yang khawatir).

Jawaban sederhananya memang seperti dugaan orang lain: ini adalah http://en.wikipedia.org/wiki/Voronoi_diagram . Kami menggunakan konsep yang sama di halaman 194, di mana situs voronoi ada pasangan garis bujur yang terdaftar oleh craigslist.org.

Sayangnya, pengetahuan ini sendiri sebenarnya tidak terlalu berguna. Dengan grafik Craigslist, jelas nilai apa yang digunakan untuk situs. Tapi trik sulap apa yang Dataclysm gunakan untuk menetapkan koordinat x / y dalam grafik ini?

Jawabannya jauh lebih terlibat daripada yang diharapkan kebanyakan orang, dan saya tidak bisa mengatakan saya merekomendasikan untuk mengulangi apa yang kami lakukan. Saya yakin orang lain di sini bisa merekomendasikan pendekatan yang mendapatkan hasil yang kurang lebih sama dan jauh lebih sederhana.

Yang benar adalah:

Christian dan saya bolak-balik selama lebih dari 3 bulan membuat grafik untuk bab ini, bahwa kami tidak akan pernah berhasil. Tapi, hasil dari satu pendekatan sering dimasukkan ke yang berikutnya.

  1. Sayangnya, hal yang paling kritis melibatkan teknik dan beberapa aset gambar yang tidak dapat saya eksplorasi atau bagikan dengan cara yang berarti, karena kita mungkin masih menggunakannya. Apa yang akan saya katakan adalah bahwa kami mengambil http://en.wikipedia.org/wiki/Graph_theory#Graph rumit yang kami kumpulkan dengan izin dari data Reddit, yang melibatkan userid dan subreddits, dan kami bermain-main dengan grafik ini dan berbagai turunannya. tentang itu di dalam http://gephi.github.io/(Saya khususnya penggemar "OpenOrd" hari ini). Sebenarnya kami mendapatkan gambar yang luar biasa - akan menjadi sorotan utama buku itu jika diterbitkan - tetapi meskipun akan bekerja dengan baik di situs web, ia tidak mencetak dengan baik dalam sebuah buku - tidak cukup ruang atau resolusi. Christian awalnya mempertimbangkan menetapkannya sebagai lipatan dalam buku, tetapi itu tidak efektif untuk Crown.

  2. Namun, pada titik ini kami memiliki gambar yang memiliki koordinat x / y untuk subreddits dan mereka setidaknya relatif diatur dengan benar dalam ruang x / y. Kami juga terburu-buru karena tenggat waktu penerbitan sudah dekat. Saya seorang programmer pertama dan seorang pria data kedua, jadi untuk mengakomodasi batas-batas halaman yang sangat ketat dalam buku dan waktu yang tersisa pada jam, insting saya adalah menulis sebuah program di Box2D yang mensimulasikan batas-batas halaman sebagai dinding, letakkan versi grafik yang sangat menyusut di dalam, dan disimulasikan menumbuhkan simpul-simpul itu (tidak alami untuk Box2D dengan cara, itu mengharapkan tubuh kaku yang tidak berubah) sampai semuanya menyiram dinding dan satu sama lain. Node tumbuh pada tingkat yang sebanding dengan ukuran subreddit yang mereka wakili, yang berarti bahwa ukuran akhir juga akan proporsional dengan cara yang sama.tangkapan layar program box2d saat berjalan

  3. Hasil itu tidak terlihat sangat bagus sama sekali, tetapi itu memberi saya sesuatu yang sangat berharga: situs voronoi. Saya mengambil centroid dari poligon box2d yang dihasilkan, menempatkan mereka melalui proses standar, dan itulah yang digunakan untuk grafik dalam buku ini. Label teks diterapkan dengan tangan di photoshop saya percaya.

Secara kebetulan, pewarnaan sel terkait dengan statistik yang telah kami kembangkan untuk membentuk grafik kembali (A)

jdowdell
sumber
1
Selamat datang di situs ini. Ini dekat dengan bagaimana saya mungkin mencoba melakukannya. Gunakan tata letak grafik apa pun untuk menetapkan koordinat xy ke node. (Mungkin dimungkinkan dalam beberapa tata letak berdasarkan gaya untuk membuat sel kira-kira ukuran yang Anda inginkan berdasarkan menentukan bobot tepi dan massa, tapi saya ragu mereka akan tepat.) Setelah membuat area voronoi dari tata letak grafik asli, maka saya akan gunakan alat kartogram, seperti Scapetoad , untuk membuat area akhir proporsional dengan statistik yang menarik. Ini akhirnya menjadi sangat mirip dengan program yang Anda sarankan di box2d.
Andy W
0

Itu lebih mirip masalah cloud kata dengan penampilan poligon Voronoi. Anda perlu menggunakan frekuensi kata untuk menentukan lokasi (frekuensi tinggi berarti pusat). Selama lokasi kata-kata ditentukan, menggambar poligon Voronoi seharusnya tidak menjadi masalah besar.

Xiaoyue
sumber