我想使用ggplot
library(ggplot2)
my_df <- data.frame(var_1 = sample(c('a','b', 'c'), 1000, replace = TRUE),
var_2 = sample(c('foo', 'bar', 'foo_bar'), 1000, replace = TRUE),
var_3 = sample(c(1,0), 1000, replace = TRUE))
ggplot(data = my_df, aes(x = var_1, y = var_2, fill = var_3)) +
geom_tile()
我无法理解哪里没有颜色变化。我在sample
函数中更改了行数,但在热图中始终只接收了两种颜色。有什么建议吗?
答案 0 :(得分:3)
这是因为您选择输入的唯一值是var_3 = sample(c(1,0), 1000, replace = TRUE)
中向量的0或1。如果您想要选择介于0和1之间的值,请改用此代码:
var_3 = sample(0:10, 1000, replace = TRUE)/10
答案 1 :(得分:2)
要按因子绘制1和0的比例,您需要为var_3
和var_1
的每个组合计算var_2
的平均值。在这里,我将展示如何使用data.table
执行此操作,但您也可以使用基础R中的dplyr.summarise
或aggregate
。
library(data.table)
setDT(my_df)
ggplot(data = my_df[, var_3 := mean(var_3), by = .(var_1,var_2)],
aes(x = var_1, y = var_2, fill = var_3)) +
geom_tile()
答案 2 :(得分:2)