繁体   English   中英

R geom_tile ggplot2应用了哪种统计?

[英]R geom_tile ggplot2 what kind of stat is applied?

我使用geom_tile()在同一张图上绘制了3个变量...

tile_ruined_coop<-ggplot(data=df.1[sel1,])+
  geom_tile(aes(x=bonus, y=malus, fill=rf/300))+
  scale_fill_gradient(name="vr")+
  facet_grid(Seuil_out_coop_i ~ nb_coop_init)
tile_ruined_coop

我对结果感到满意!

ggplot2 geom_tile示例

但是,采用哪种统计处理来fill 这是一个意思吗?

要绘制填充值的平均值,应在绘制之前汇总值。 scale_colour_gradient(...)在数据级别上不起作用,但在可视化级别上起作用。 让我们从一个玩具数据框开始,以构建一个可重复使用的示例。

mydata = expand.grid(bonus = seq(0, 1, 0.25), malus = seq(0, 1, 0.25), type = c("Risquophile","Moyen","Risquophobe"))
mydata = do.call("rbind",replicate(40, mydata, simplify = FALSE))
mydata$value= runif(nrow(mydata), min=0, max=50)
mydata$coop = "cooperative"

现在,在进行绘图之前,建议您在40个值的组中计算平均值,对于此操作,请使用dplyr包:

library(dplyr)
data = mydata %>% group_by("bonus","malus","type","coop") %>% summarise(vr=mean(value))

拖,您已经准备好使用ggplot2绘制数据集:

library(ggplot2)
g = ggplot(data, aes(x=bonus,y=malus,fill=vr))
g = g + geom_tile()
g = g + facet_grid(type~coop)

结果是: 瓷砖图

确保填充值恰好是您的值的平均值。
这是您所期望的吗?

如文档所示,它使用stat_identity 您可以轻松地进行测试:

DF <- data.frame(x=c(rep(1:2, 2), 1), 
                 y=c(rep(1:2, each=2), 1), 
                 fill=1:5)

#  x y fill
#1 1 1    1
#2 2 1    2
#3 1 2    3
#4 2 2    4
#5 1 1    5

p <- ggplot(data=DF) +
  geom_tile(aes(x=x, y=y, fill=fill))

print(p)

在此处输入图片说明

如您所见,1/1组合的填充值为5。如果使用因子,则更清楚会发生什么:

p <- ggplot(data=DF) +
  geom_tile(aes(x=x, y=y, fill=factor(fill)))

print(p)

在此处输入图片说明

如果您想描述均值,我建议在ggplot2之外计算它们:

library(plyr)
DF1 <- ddply(DF, .(x, y), summarize, fill=mean(fill))
p <- ggplot(data=DF1) +
  geom_tile(aes(x=x, y=y, fill=fill))

print(p)

在此处输入图片说明

这比尝试找出stat_summary可以以某种方式与geom_tile stat_summary播放(我对此表示怀疑)要容易得多。

scale_fill()和geom_tile()不应用统计信息-或最好将stat_identity()应用到您的填充值= rf / 300。 它只计算您使用了多少种颜色,然后使用munsell函数'mnsl()'生成颜色。 如果只想对显示的颜色应用一些统计信息,则应使用:

scale_colour_gradient(trans = "log")

要么

scale_colour_gradient(trans = "sqrt")

改变图块之间的颜色并不是最好的主意,因为这些图必须具有可比性,并且您可以根据它们的颜色来比较这些值。 希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM