ggplot2 :: geom_tile不能指定填充颜色?

时间:2018-02-09 17:45:24

标签: r ggplot2 fill

我有一个数据框,我想用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")

enter image description here

1 个答案:

答案 0 :(得分:2)

没有geom_tileheight参数的

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))