我想使用 ggplot 創建具有相同資料但突出顯示特定行的多個密度圖。我的表非常大,但有以下列:
Marker Sample value
X1 4_HVxLF 0.5
X2 4_HVxLF 0.1
...
.
ggplot(Dta, aes(x=value, group=Sample, color = Sample))
geom_density()
xlab("value")
ylab("Density")
theme_classic()
這并不容易解釋。然后,我的目標是得到這樣的東西:
. 使用的代碼是:
ggplot(Dta, aes(x=value, group=Sample, color = Sample))
geom_density()
xlab("value")
ylab("Density")
theme_classic()
gghighlight(SampleName == "25_HVxLF",
unhighlighted_params = list(colour = "grey90"))
因此,我嘗試構建一個回圈以獲取包含 4 個圖的 PDF,例如每頁的第二個圖以及我的所有樣本(其中 105 個)。我不能用facet_wrap,因為它們太多了。這是我嘗試過的:
Samples <- unique(Dta$Sample)
pdf('Allplots.pdf', width = 8, height = 11)
par(mfrow=c(4,2))
for (i in Samples){
ggplot(Dta, aes(x=value, group=Sample,
color = Sample))
geom_density()
xlab("value")
ylab("Density")
theme_classic()
gghighlight(Sample == Samples[i],
unhighlighted_params = list(colour = "grey90"))
}
dev.off()
但是出來的PDF是4kb,我打不開。它說沒有頁面。我不習慣使用回圈,所以這是我的第一次嘗試......我不知道我做錯了什么(也許很多事情),有人可以幫我弄清楚嗎?
預先感謝您的幫助!
戴安娜
uj5u.com熱心網友回復:
使用patchworkandlapply回圈遍歷您的樣本,一種實作所需結果的方法可能如下所示:
- 使用第一個回圈來創建你的圖并將它們存盤在一個串列中
- 使用第二個回圈將圖粘合在一起,使用 2 行和 2 列的網格
patchwork::wrap_plots
利用一些虛假的隨機示例資料:
library(ggplot2)
library(gghighlight)
library(patchwork)
plot_fun <- function(highlight) {
ggplot(Dta, aes(x=value, group=Sample,
color = Sample))
geom_density()
xlab("value")
ylab("Density")
theme_classic()
gghighlight(Sample == highlight,
unhighlighted_params = list(colour = "grey90"))
}
Samples <- unique(Dta$Sample)
# Make plots
p <- lapply(Samples, plot_fun)
nrow <- 2
ncol <- 2
# Page counter
idx_page <- rep(seq(ceiling(length(p) / nrow / ncol)), each = nrow * ncol, length.out = length(p))
# Export plots as grids of 2 x 2
pdf('Allplots.pdf', width = 8, height = 11)
lapply(unique(idx_page), function(x) {
wrap_plots(p[idx_page == x], ncol = ncol, nrow = nrow)
})
#> [[1]]
#>
#> [[2]]
#>
#> [[3]]
#>
#> [[4]]
#>
#> [[5]]
dev.off()
#> quartz_off_screen
#> 2
資料
# Random example data
set.seed(123)
n <- 20
Dta <- data.frame(
Sample = rep(LETTERS[seq(n)], each = 100),
value = rnorm(100 * n)
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/451539.html
標籤:r pdf ggplot2 gghighlight
上一篇:在linux上過濾實時json流
下一篇:如何更改樹物件類或繪制漂亮的樹
