Saya mencoba untuk memplot dua variabel di mana N = 700K. Masalahnya adalah ada terlalu banyak tumpang tindih, sehingga plot menjadi sebagian besar blok hitam. Apakah ada cara untuk memiliki "awan" abu-abu di mana kegelapan plot adalah fungsi dari jumlah titik di suatu wilayah? Dengan kata lain, alih-alih menunjukkan poin individu, saya ingin plot menjadi "awan", dengan semakin banyak poin di suatu wilayah, semakin gelap wilayah itu.
r
scatter-plot
pengguna702432
sumber
sumber
Jawaban:
Salah satu cara untuk mengatasi ini adalah dengan alpha blending, yang membuat setiap titik sedikit transparan. Jadi daerah tampak lebih gelap yang memiliki lebih banyak titik diplot pada mereka.
Ini mudah dilakukan di
ggplot2
:Cara lain yang mudah untuk menangani ini adalah (dan mungkin lebih tepat untuk jumlah poin yang Anda miliki) adalah binning heksagonal:
Dan ada juga binning persegi panjang biasa (gambar dihilangkan), yang lebih mirip peta panas tradisional Anda:
sumber
scale_fill_gradient()
dan tentukan sendiri warna rendah dan tinggi Anda, atau gunakanscale_fill_brewer()
dan pilih dari salah satu palet berurutan.geom_point()
dan memplot setiap titik individual.Anda juga dapat melihat
ggsubplot
paketnya. Paket ini mengimplementasikan fitur-fitur yang disajikan oleh Hadley Wickham pada tahun 2011 ( http://blog.revolutionanalytics.com/2011/10/ggplot2-for-big-data.html ).(Berikut ini, saya memasukkan "poin" -pemain untuk tujuan ilustrasi.)
Namun, fitur ini mengguncang jika Anda memiliki variabel ketiga untuk dikontrol.
Atau pendekatan lain adalah menggunakan
smoothScatter()
:sumber
Ikhtisar beberapa opsi bagus di
ggplot2
:Opsi A: titik transparan
Opsi B: tambahkan kontur kerapatan
Opsi C: tambahkan kontur kerapatan yang terisi
Opsi D: peta panas kerapatan
Opsi E: hexbins
Opsi F: permadani
Gabungkan dalam satu gambar:
sumber
Alpha blending juga mudah dilakukan dengan grafis dasar.
Enam angka pertama setelah
#
adalah warna dalam RGB hex dan dua terakhir adalah opacity, lagi-lagi dalam hex, jadi 33 ~ 3/16 buram.sumber
Anda juga dapat menggunakan garis kontur kerapatan (
ggplot2
):Atau kombinasikan kontur kerapatan dengan alpha blending:
sumber
Anda mungkin menemukan
hexbin
paket yang bermanfaat. Dari halaman bantuanhexbinplot
:sumber
geom_pointdenisty
from theggpointdensity
package (baru-baru ini dikembangkan oleh Lukas Kremer dan Simon Anders (2019)) memungkinkan Anda memvisualisasikan kerapatan dan titik data individual pada saat yang sama:sumber
Metode favorit saya untuk memplot tipe data ini adalah yang dijelaskan dalam pertanyaan ini - plot sebaran-kerapatan . Idenya adalah untuk melakukan sebar-plot tetapi untuk mewarnai titik dengan kepadatan mereka (secara kasar, jumlah tumpang tindih di daerah itu).
Secara bersamaan:
Ini adalah hasil dari jawaban teratas untuk pertanyaan terkait:
sumber
R
.