Membuat peta panas menggunakan R

Saya ingin membuat peta panas untuk menampilkan data yang saya miliki. Data terdiri dari 3 kolom dengan 100 baris. Saya menggunakan kode berikut untuk membuat peta panas menggunakan paket ggplot di R.

x=c("x1","x2","x3")
y=paste0("var",seq(1,100))
datax=expand.grid(x,y)
datax$z=runif(300,0,5)
require(ggplot2)
ggplot(datax, aes(Var1, Var2, fill= z)) + 
  geom_tile()

Saya mendapatkan output sebagai berikut: masukkan deskripsi gambar di sini

Saya ingin membuat grafik ini lebih cantik. yaitu, di sini setiap sel memiliki bentuk persegi panjang. Bagaimana cara membuatnya tampak persegi? Juga apakah ada cara untuk menghapus nama baris dan meletakkan judul kolom di bagian atas plot?

Terima kasih


person student_R123    schedule 17.07.2021    source sumber
comment
Apakah ini menjawab pertanyaan Anda? peta panas korelasi menggunakan heatmaply R   -  person Galen    schedule 17.07.2021
comment
@Galen, saya khawatir tidak. Saya hanya ingin membuat peta panas untuk data mentah. Bukan karena korelasinya   -  person student_R123    schedule 17.07.2021


Jawaban (1)


Alasan mengapa berbentuk persegi panjang adalah karena terdapat banyak nilai pada sumbu y dan hanya sedikit pada sumbu x. Jika Anda ingin berbentuk persegi, Anda perlu menyimpan plot secara eksplisit dengan ukuran tertentu.

Jalankan ini tepat setelah perintah ggplot (tidak ada +) dan bermain-main dengan width dan height. Secara default, ini akan menyimpan plot terakhir yang ditampilkan.

ggsave("filename.pdf", device = "pdf", width = <w>, height = <h>)

Untuk mendapatkan label x di atas, gunakan + scale_x_discrete(position="top"). Untuk menghapus seluruh variabel sumbu y, gunakan + theme(axis.text.x=element_blank()) (keduanya setelah panggilan ggplot)

Ide lain:

  • jika Anda membutuhkan lebih banyak ruang, hapus label x dan y dengan + xlab(NULL) + ylab(NULL) setelah geom_tile()
  • karena ini kemungkinan besar akan berupa grafik yang tinggi dan tipis, bergantung pada apakah Anda memiliki variabel lain var3 yang dapat digunakan untuk mengelompokkan sumbu y, Anda dapat menggunakan facet_wrap(~var3) untuk memecah peta panas raksasa menjadi peta panas yang lebih kecil dan berbentuk persegi
person petrucci4prez    schedule 17.07.2021