在 R 語言中,我希望有一個單一的背景水平線(背景網格),以便更容易識別列。我將在 R 代碼中提供一個示例。
# install.packages("cowplot")
library(ggplot2)
library(cowplot)
df <- data.frame(
supp = rep(c("VC", "OJ"), each = 3),
dose = rep(c("D0.5", "D1", "D2"), 2),
len = c(6.8, 15, 33, 4.2, 10, 29.5)
)
p <- ggplot(df, aes(x = dose, y = len))
geom_col(aes(fill = supp), width = 0.7) coord_flip()
theme(axis.text.x=element_blank(),axis.ticks.x=element_blank(),
axis.text.y=element_blank(),axis.ticks.y=element_blank())
labs(x = "", y = "")
theme( legend.position = "bottom",
panel.background = element_rect(fill = "transparent"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.background = element_rect(fill = "transparent", color = NA))
p
plot_grid(p, p, align = 'h', ncol = 2, rel_widths = c(5, 5))

我想以灰色水平線的形式制作一個(背景網格),將螢屏截圖中的每一列分開,這將提供
我希望背景通過 plot_grid 中的兩個圖而沒有分離。因為我的原始圖會是這樣,但更先進的是僅在第一個圖中提供列名稱,這些行有助于通過查看第一個圖名稱來了解第二列中的哪一列。謝謝
uj5u.com熱心網友回復:
一種選擇是通過將右/左plot.margin設定為零、將 設定axis.ticks.length為零并將 y 軸標題設定為 來洗掉繪圖之間的空間NULL。最后我geom_hline用來添加“網格”線。
注意:我切換了x和的角色y以擺脫coord_flip. 使(我的大腦(;))更容易進行調整。
# install.packages("cowplot")
library(ggplot2)
library(cowplot)
df <- data.frame(
supp = rep(c("VC", "OJ"), each = 3),
dose = rep(c("D0.5", "D1", "D2"), 2),
len = c(6.8, 15, 33, 4.2, 10, 29.5)
)
p <- ggplot(df, aes(y = dose, x = len))
geom_col(aes(fill = supp), width = 0.7)
geom_hline(yintercept = 0:3 .5)
labs(x = "", y = NULL)
theme(
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.ticks.length = unit(0, "pt"),
legend.position = "bottom",
panel.background = element_rect(fill = "transparent"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
plot.background = element_rect(fill = "transparent", color = NA)
)
plot_grid(
p theme(plot.margin = margin(5.5, 0, 5.5, 5.5)),
p theme(plot.margin = margin(5.5, 5.5, 5.5, 0)),
align = "h", ncol = 2, rel_widths = c(5, 5)
)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/462765.html
上一篇:從ggplot置信區間中提取值
