簡體   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