[英]Use facet_zoom in a stat_density plot
我想使用 facet_zoom 但由於某種原因,縮放區域結果為空。
我使用的兩個數據集只是從修改的多項式分布生成的 1.000.000 個數字的數字向量。 在放大的區域中,我想顯示一個小尖峰。
prova <-readRDS("probcond1.rds")
prova1 <-readRDS("probpoly.rds")
dfGamma <-data.frame(prova)
ggplot(dfGamma, aes(x=prova)) + stat_density(aes(y=..count..), color="black", fill="blue", alpha=0.3)
g <- ggplot(dfGamma, aes(x=prova)) +
stat_density(aes(y=..count..), color="black", fill="blue", alpha=0.3) +
scale_x_continuous(breaks=c(0,1,2,3,4,5,10,30,100,300,1000,4000,5000), trans="log1p", expand=c(0,0)) +
theme_bw()
g+expand_limits(x = c(1, 6000)) +facet_zoom(xlim = c(4000,5000))
我對 R 真的很陌生。 對不起我的無知
您的axis
在log1p
比例尺上,因此您的xlim
應包裹在log1p
內以進行縮放。 您可以執行以下操作:
g+expand_limits(x = c(1, 6000)) +facet_zoom(xlim = c(log1p(4000),log1p(5000)))
這是使用mtcars
數據集的示例。
library(ggplot2)
library(ggforce)
g <- ggplot(mtcars, aes(x=hp)) +
stat_density(aes(y=..count..), color="black", fill="blue", alpha=0.3) +
scale_x_continuous(breaks=c(0,1,2,3,4,5,10,30,100,300), trans="log1p", expand=c(0,0)) +
theme_bw()
如果您使用facet_zoom(xlim = c(100,300))
如下將產生空縮放 output (g 的 x 軸上不存在 100 和 300 的平面值):
g+expand_limits(x = c(1, 300)) +facet_zoom(xlim = c(100,300))
如果使用log1p
xlim
則可以放大 plot g
的x-axis
的相應值。 你可以這樣做:
g+expand_limits(x = c(1, 300)) +facet_zoom(xlim = c(log1p(100),log1p(300)))
如果要獨立zoom
軸,可以如下操作:
g+expand_limits(x = c(1, 300)) +facet_zoom(xlim = c(log1p(100),log1p(300)), ylim = c(5,10), split = TRUE)
如您所見,我確實將ylim
縮放到5
到10
之間,而split = TRUE
使縮放獨立,您可以擁有縮放軸的多個視圖,或者如果您只想要一個視圖,您可以將split
保留為其默認值FALSE
. 該手冊包含更多您可能想要查閱的信息,以防萬一它在Package 'ggforce'上可用
希望有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.