R удалить две стороны границы из функции strip.background - PullRequest
1 голос
/ 01 февраля 2020

Фрейм данных

df <- data.frame(
structure(list(biological_group = structure(1:15, .Label = c("A", 
"B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", 
"O"), class = "factor"), norm_expression = c(2L, 3L, 4L, 6L, 
1L, 5L, 7L, 8L, 9L, 3L, 2L, 6L, 7L, 8L, 1L), SE = c(0.171499719, 
0.089692493, 0.153777208, 0.188012958, 0.153776128, 0.192917199, 
0.224766056, 0.231338325, 0.121716906, 0.094763028, 0.09635363, 
0.069986333, 0.113681329, 0.094614957, 0.391182473), Group = structure(c(1L, 
1L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("", 
"Plant Products", "Sugars"), class = "factor")), class = "data.frame", row.names = c(NA, 
-15L), .Names = c("biological_group", "norm_expression", "SE", 
"Group")))

Пример кода

library(ggplot2)

DFplot <-  ggplot(df, aes(biological_group,norm_expression)) + 
  ylab("Relative Normalized\nExpression (∆∆Cq)") + 
  geom_bar(fill="black",stat="identity") +
  theme(axis.title.x = element_blank())

DFplot2 <- DFplot+geom_errorbar(aes(ymin=norm_expression-SE,ymax=norm_expression+SE),width=0.5) + 
  geom_boxplot() + 
  facet_grid(~Group, scales = "free_x", switch = "x", space = "free_x") + 
  scale_y_continuous(expand = c(0,0), labels = scales::number_format(accuracy = 0.1)) + 
  theme_classic()

Это дает мне этот график: enter image description here

Я хотел бы удалить вертикальные линии из текстовых меток полосы (заданных strip.background), например: enter image description here

Я понимаю, что я можно просто использовать фотошоп или что-то еще, но у меня есть несколько графиков, чтобы было проще, если бы я мог просто указать это в коде.

1 Ответ

1 голос
/ 01 февраля 2020

Этот ответ был полезен.

В вашем случае вы хотите найти strip-b для замены ваших нижних полос.

Редактировать : заменена верхняя планка нижней полосы, которая была случайно удалена.

library(grid)

q <- ggplotGrob(DFplot2)

lg <- linesGrob(x=unit(c(1,0),"npc"), y=unit(c(1,1),"npc"), gp=gpar(col="black", lwd=2))

for (k in grep("strip-b",q$layout$name)) {
  q$grobs[[k]]$grobs[[1]]$children[[1]] <- lg
}

grid.draw(q)

fixed bottom strip rect with top/bottom removed

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...