我有一个数据框,我想用geom_tile
绘图并根据数据中的“ID”变量填充,但我发现fill
在我的代码中不起作用。谢谢你的帮助。
set.seed(1234)
x <- sample(x=-2288200:3076160, size = 1000,replace = F)
y <- sample(x=353334.1:4803914.0, size = 1000,replace = F)
ID <- sample(x=1:4, size = 1000,replace = T)
Mydata <- data.frame(x=x,y=y,ID=factor(ID))
group.colors <- c("1"="red","2"="yellow","3"="blue","4"="green")
ggplot() + geom_tile(data = Mydata, aes(x = x, y = y, fill=ID)) +
scale_fill_manual(values = group.colors,name = "group")
答案 0 :(得分:2)
geom_tile
和height
参数的 width
会自动选择它们来创建网格。
在您的情况下,此网格非常窄,因为您的数据非常稀疏,因此您尝试显示的图块小于分辨率可以显示的图块。
我们可以通过评估数据点的宽度和高度来显示它们的位置(虽然在这种情况下我们不再显示网格!)。
ggplot(Mydata) + geom_tile(aes(x = x, y = y, fill=ID),width=100000,height=100000)
将其与:
进行比较Mydata2 <- data.frame(x=c(1,2,2.5,3),y=c(1,2,2.5,3),ID=1:4)
ggplot(Mydata2) + geom_tile(aes(x = x, y = y, fill=ID))