此热图代码来自此处之前的答案。我对其进行了更改,使其显示四位小数:
library(tidyverse)
## make data
dat <- matrix(rnorm(100, 3, 1), ncol=10)
## reshape data (tidy/tall form)
dat2 <- dat %>%
tbl_df() %>%
rownames_to_column('Var1') %>%
gather(Var2, value, -Var1) %>%
mutate(
Var1 = factor(Var1, levels=1:10),
Var2 = factor(gsub("V", "", Var2), levels=1:10)
)
## plot data
ggplot(dat2, aes(Var1, Var2)) +
geom_tile(aes(fill = value)) +
geom_text(aes(label = round(value, 4))) +
scale_fill_gradient(low = "white", high = "red")
小数点后四位,我的输出如下所示:
我怎样才能:
- 使单元格足够大以包含所有数字
- 将单元格设置为正方形,即不是矩形(以便它们看起来像原始答案中的输出)
- 强制显示有效数字,例如 0.9 显示为 0.9000
谢谢。
最佳答案
感谢 Z.Lin 的帮助,效果非常好。
library(tidyverse)
## make data
dat <- matrix(rnorm(100, 3, 1), ncol=10)
## reshape data (tidy/tall form)
dat2 <- dat %>%
tbl_df() %>%
rownames_to_column('Var1') %>%
gather(Var2, value, -Var1) %>%
mutate(
Var1 = factor(Var1, levels=1:10),
Var2 = factor(gsub("V", "", Var2), levels=1:10)
)
## plot data
ggplot(dat2, aes(Var1, Var2)) +
geom_tile(aes(fill = value)) +
geom_text(aes(label = round(value, 4)), size = 2) +
scale_fill_gradient(low = "white", high = "red") + coord_fixed()
关于r - 带有值的热图(ggplot2)——如何使单元格成为正方形并自动调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46801762/