[英]ggplot, add grid lines between bars groups
在具有離散 x 軸的 ggplot 中使用躲避條時,它們以 x 刻度為中心。 因此,垂直網格線也沿着柱組中間的刻度線穿過。
我希望在條形組之間有網格線。 這在前面顯示的情況下特別有用,在這種情況下,條形稀疏並且每個條形所屬的組不是直接的。
這是代碼(沒有 x 的排序,它不相關並且很長):
library(ggplot)
library(dplyr)
structure(list(Reparto = c("Oncologia medica", "Centro trapianti",
"Chirurgia epatobiliare", "Dh oncologico", "Radioterapia", "Chirurgia",
"Chirurgia oncologica", "Gastroenterologia", "Radiologia", "Oncologia medica",
"Centro trapianti", "Chirurgia epatobiliare", "Dh oncologico",
"Radioterapia", "Chirurgia", "Chirurgia oncologica", "Gastroenterologia",
"Radiologia", "Oncologia medica", "Centro trapianti", "Chirurgia epatobiliare",
"Dh oncologico", "Radioterapia", "Chirurgia", "Chirurgia oncologica",
"Gastroenterologia", "Radiologia", "Oncologia medica", "Centro trapianti",
"Chirurgia epatobiliare", "Dh oncologico", "Radioterapia", "Chirurgia",
"Chirurgia oncologica", "Gastroenterologia", "Radiologia"), Fascia.oraria = c("00:00 - 3:00",
"00:00 - 3:00", "00:00 - 3:00", "00:00 - 3:00", "00:00 - 3:00",
"00:00 - 3:00", "00:00 - 3:00", "00:00 - 3:00", "00:00 - 3:00",
"3:00 - 13:00", "3:00 - 13:00", "3:00 - 13:00", "3:00 - 13:00",
"3:00 - 13:00", "3:00 - 13:00", "3:00 - 13:00", "3:00 - 13:00",
"3:00 - 13:00", "13:00 - 24:00", "13:00 - 24:00", "13:00 - 24:00",
"13:00 - 24:00", "13:00 - 24:00", "13:00 - 24:00", "13:00 - 24:00",
"13:00 - 24:00", "13:00 - 24:00", "Orario sconosciuto", "Orario sconosciuto",
"Orario sconosciuto", "Orario sconosciuto", "Orario sconosciuto",
"Orario sconosciuto", "Orario sconosciuto", "Orario sconosciuto",
"Orario sconosciuto"), Eventi = c(19.7, 2.19, 0, 0, 0, 0, 0,
0, 0, 4.6, 1.32, 0.66, 0, 0.66, 0, 0, 0.66, 0, 7.77, 0, 1.2,
1.2, 0, 0.6, 0.6, 0, 0.6, NA, NA, NA, NA, NA, NA, NA, NA, NA)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -36L)) %>%
ggplot(aes(str_first_up(Reparto), Eventi)) +
geom_col(aes(fill = Fascia.oraria), position = position_dodge2(preserve = 'total')) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1),
panel.grid.minor.x = element_line(color = 'gray')
) +
labs(x = NULL, y = 'N. eventi x 100 gg', fill = 'Fascia oraria')
您可以像這樣手動設置行:
p +
theme(panel.grid = element_blank()) + # remove grid lines
geom_vline(xintercept = seq(0.5, length(df$Reparto), by = 1), color="gray", size=.5, alpha=.5) # set vertical lines between x groups
其中p
是您的原始圖,而df
是您的 data.frame。
Obs:為了制作這張圖片,我從你的代碼中刪除了str_first_up()
,因為它不是來自dplyr
或ggplot
包(當前版本)。 另外,我在您的主題設置之前添加了theme_bw()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.