In R language I want to have a single background horizontal lines (background grid) to make it easier to identify the columns. I will provide an example in the R code.
# 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))
I want to make a (background grid) in the form of grey horizontal lines that separates each column likee in the screenshot that will provided I want the background pass by the two plots in the plot_grid with no separation. Because my original plots will be like that but more advance providing the columns names in the first plot only and these lines helps to know what column is that in the second column by looking at the first plot names. Thanks
CodePudding user response:
One option would be to remove the space between your plots by setting the right/left plot.margin
to zero, setting the axis.ticks.length
to zero and by setting the y axis title to NULL
. Finally I use geom_hline
to add the "grid" lines.
Note: I switched the role of x
and y
to get rid of coord_flip
. Makes it easier (for my brain (;) to do the adjustments.
# 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)
)