ฉันสร้างแผนที่ความร้อนด้านล่าง
ซึ่งฉันใช้รหัสนี้:
library(ggplot2)
library(reshape2)
winners_min_expd0 <- matrix(c(NA, 2, 2, 3, NA, 3, 2, 2, NA), nrow=3, ncol=3, byrow = T)
colnames(winners_min_expd0) <- c("homophily","heterophily","preferential")
rownames(winners_min_expd0) <- c("homophily","heterophily","preferential")
melted_min_expd0 <- melt(winners_min_expd0)
colnames(melted_min_expd0) <- c("winning", "looses", "times")
p_min_expd0 <- ggplot(melted_min_expd0, aes(looses, winning)) +
geom_tile(aes(fill = times), colour = "white") +
scale_fill_gradient(low = "white", high = "red") +
ggtitle("Min function, exp decay off") +
scale_y_discrete(limits=c("preferential", "heterophily", "homophily")) +
xlab("(x) looses against (y)") + ylab("(y) winning over (x)")
p_min_expd0
ฉันอยากจะ:
- ปรับแถบ "ครั้ง" อีกครั้งเป็นช่วง
<0:5>
ฉันเข้าใจว่าไม่มีค่า{0,1,4,5}
แต่ฉันอยากได้ช่วงนี้ - ทำให้ระดับความร้อน "เวลา" แยกจากกัน ซึ่งหมายถึงสีเดียวสำหรับตัวเลขหนึ่งตัว เช่น
5 = hot red
,4 = red
ฯลฯ (อาจซ้ำกัน: แผนที่ความร้อน ggplot2 พร้อมสีสำหรับค่าในช่วง) ช่วงเช่น<0,1)
เป็นที่ยอมรับ แต่ฉันชอบตัวเลขธรรมชาติเพียงตัวเดียวในระดับ (แทนที่จะเป็นช่วงค่า) - เพิ่มตารางบางๆ บนแผนที่ความร้อน เพื่อให้แผ่นทั้งหมด (รวมถึงแผ่นสีขาว) ถูกแยกออกจากกัน
- เปลี่ยนสีสีเทาของค่า NA ให้เป็นสีเทาอ่อนกว่า
ได้รับการชื่นชมความช่วยเหลือ เช่นเดียวกับโค้ดที่สั้นลง
ขอบคุณ!