簡體   English   中英

在 stat_density plot 中使用 facet_zoom

[英]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 真的很陌生。 對不起我的無知

您的axislog1p比例尺上,因此您的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))

輸出 1(平面值縮放)

zoom_empty

如果使用log1p xlim則可以放大 plot gx-axis的相應值。 你可以這樣做:

g+expand_limits(x = c(1, 300)) +facet_zoom(xlim = c(log1p(100),log1p(300)))

輸出 2(log1p 縮放)

zoom_proper

如果要獨立zoom軸,可以如下操作:

g+expand_limits(x = c(1, 300)) +facet_zoom(xlim = c(log1p(100),log1p(300)), ylim = c(5,10), split = TRUE)

Output

zoom_xy_indpt

如您所見,我確實將ylim縮放到510之間,而split = TRUE使縮放獨立,您可以擁有縮放軸的多個視圖,或者如果您只想要一個視圖,您可以將split保留為其默認值FALSE . 該手冊包含更多您可能想要查閱的信息,以防萬一它在Package 'ggforce'上可用

希望有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM