Bagaimana cara menambahkan poligon yang rapi di sekitar sekelompok titik di sebar? Saya menggunakan ggplot2 tetapi saya kecewa dengan hasilnya geom_polygon
.
Dataset ada di sana , sebagai file teks yang dibatasi tab. Grafik di bawah ini menunjukkan dua ukuran sikap terhadap kesehatan dan pengangguran di banyak negara:
Saya ingin beralih dari geom_density2d
yang kurang mewah tetapi secara empiris lebih benar geom_polygon
. Hasil pada data yang tidak disortir tidak membantu:
Bagaimana cara menggambar poligon 'rapi' yang berperilaku sebagai jalur kontur di sekitar nilai min-max yx? Saya mencoba menyortir data tetapi tidak berhasil.
Kode:
print(fig2 <- ggplot(d, aes(man, eff, colour=issue, fill=issue)) +
geom_point() + geom_density2d(alpha=.5) + labs(x = "Efficiency", y = "Mandate"))
The d
objek diperoleh dengan file CSV ini .
Larutan:
Terima kasih kepada Wayne , Andy W dan yang lainnya untuk petunjuk mereka! Data, kode, dan grafik telah diposting ke GitHub . Hasilnya terlihat seperti ini:
sumber
?chull
denganggplot2
sejauh ini. Saya tidak yakin bahwa saya mengkodekannya dengan benar, dan berharap seseorang telah melakukannya.alphahull
bekerja mirip dengan menemukan lambung cembung, tetapi memungkinkan Anda untuk menyesuaikannya ke dalam / ke luar untuk mencoba melakukan sesuatu seperti interval kepercayaan.Jawaban:
Dengan beberapa googling saya menemukan situs web Gota Morota yang memiliki contoh melakukan hal ini di situs webnya . Di bawah ini adalah contoh yang diperluas ke data Anda.
sumber
NA
membunuhchull
fungsi. Saya berharap untuk mengabaikannya saja, tetapi gagal dalam melakukannya dan saya tidak menemukan carana.omit()
untuk membuatnya berfungsi. Saya yakin itu mungkin, saya hanya tidak memiliki keterampilan hackery untuk melampaui solusi sebelumnya.Jika saya memahami masalah Anda, Anda mencari lambung cembung dari
health
danunemployment
. Mungkin ada beberapa paket untuk melakukan ini di R, salah satunya adalah paketgeometry
. Saya akan membayangkan bahwa titik-titik diurutkan dalam urutan di sekeliling, tetapi Anda harus memeriksanya.EDIT: Berikut ini contoh, yang tidak digunakan
ggplot
, tapi saya harap ini berguna. Contoh dalamchull
dokumentasi tampaknya salah, yang mungkin membuat Anda tidak senang:EDIT 2: OK, ini ada sesuatu yang menggunakan ggplot2. Kami berubah
X
menjadidata.frame
dengan variabelx
dany
. Kemudian:Perhatikan bahwa
geom_point
ini menggunakan data (X
) dan aes dari ggplot, sementara saya menimpanya digeom_polygon
.Untuk mendapatkannya sepenuhnya, Anda harus memasukkan x dan y untuk lambung untuk kedua masalah
bar
, menggunakan kolom ketigaissue
untuk membedakannya.sumber
chull
untuk menghasilkan convex hull tetapi gagal menggunakan hasilnyaggplot2
.ggplot2
.na.omit
untuk menghilangkan NA yang berhentichull
bekerja. Terima kasih lagi.Sampai sore ini, saya telah membungkus
chull
fungsi di dalam paket R sebagaigeom_convexhull
fungsi.Setelah paket dimuat, itu dapat digunakan sebagai geom lainnya, dalam kasus Anda harus sesuatu seperti:
Paket ini tersedia di github: https://github.com/cmartin/ggConvexHull
sumber
chull
faktor pengelompokan sampai saya menemukan ini.