การสร้างแผนที่ความร้อนโดยใช้ R

ฉันต้องการสร้างแผนที่ความร้อนเพื่อแสดงข้อมูลที่ฉันมี ข้อมูลประกอบด้วย 3 คอลัมน์ จำนวน 100 แถว ฉันใช้โค้ดต่อไปนี้เพื่อสร้างแผนที่ความร้อนโดยใช้แพ็คเกจ ggplot ใน 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()

ฉันได้ผลลัพธ์ดังนี้: ป้อนคำอธิบายรูปภาพที่นี่

ฉันอยากให้กราฟนี้สวยขึ้น กล่าวคือ แต่ละเซลล์จะมีรูปทรงสี่เหลี่ยมผืนผ้าที่นี่ ทำอย่างไรให้ปรากฏเป็นสี่เหลี่ยม? มีวิธีลบชื่อแถวและวางส่วนหัวของคอลัมน์ไว้ที่ด้านบนของพล็อตหรือไม่

ขอบคุณ


person student_R123    schedule 17.07.2021    source แหล่งที่มา
comment
สิ่งนี้ตอบคำถามของคุณหรือไม่? แผนที่ความร้อนความสัมพันธ์โดยใช้ heatmaply R   -  person Galen    schedule 17.07.2021
comment
@ Galen ฉันกลัวว่ามันไม่ใช่ ฉันแค่ต้องการสร้างแผนที่ความร้อนสำหรับข้อมูลดิบ ไม่ใช่เพื่อความสัมพันธ์   -  person student_R123    schedule 17.07.2021


คำตอบ (1)


สาเหตุที่พวกมันเป็นรูปสี่เหลี่ยมผืนผ้าก็เพราะว่ามีค่าบนแกน y หลายค่าและมีเพียงไม่กี่ค่าบนแกน x หากคุณต้องการให้เป็นสี่เหลี่ยมจัตุรัส คุณจะต้องบันทึกพล็อตด้วยขนาดที่แน่นอนอย่างชัดเจน

เรียกใช้สิ่งนี้หลังจากคำสั่ง ggplot (ไม่ใช่ +) และเล่นกับ width และ height โดยค่าเริ่มต้น ระบบจะบันทึกพล็อตสุดท้ายที่แสดง

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

หากต้องการให้ป้ายกำกับ x อยู่ด้านบน ให้ใช้ + scale_x_discrete(position="top") หากต้องการลบตัวแปรแกน y ทั้งหมด ให้ใช้ + theme(axis.text.x=element_blank()) (ทั้งคู่หลังจากการเรียก ggplot)

แนวคิดอื่นๆ:

  • หากคุณต้องการพื้นที่เพิ่ม ให้ถอดป้ายกำกับ x และ y ที่มี + xlab(NULL) + ylab(NULL) หลัง geom_tile()
  • เนื่องจากนี่อาจเป็นกราฟสูงและผอม ขึ้นอยู่กับว่าคุณมีตัวแปรอื่น var3 ที่สามารถใช้เพื่อสับเซตแกน y คุณสามารถใช้ facet_wrap(~var3) เพื่อแยกแผนที่ความร้อนขนาดยักษ์ออกเป็นแผนที่ความร้อนที่มีขนาดเล็กลงและเป็นสี่เหลี่ยมจัตุรัสมากขึ้น
person petrucci4prez    schedule 17.07.2021