Wykonuję bargraf w ggplot2, a ze względu na prezentację potrzebuję spacji między niektórymi z moich kresek. Używam limitów w scale_x_discrete
do wstawiania pustych pasków, co daje mi wymagane odstępy.Usunąć pojedynczy znacznik zaznaczenia osi X w ggplot2 w R?
Różnica między grupami b
i c
w moim mock danych wygląda idealnie, ale różnica między a
i b
nadal ma czarny znak zaznaczyć i białą linię w tle. Nie potrzebuję żadnych linii siatki osi x, więc mogę łatwo rozwiązać problem białej linii, ale nie mogę się dowiedzieć, jak pozbyć się znaku podziałki.
używam wersji 3.3.1 R (2016-06-21) - "Bug we włosach", pracując w RStudio a kod wymaga ggplot2
### Mock data with the same structure as mine
my.data <- data.frame(x = rep(c("a", "b", "c", "d"), 3),
y = c("e", "f", "g"))
### Make graph
ggplot(my.data, aes(x = x, fill = y)) +
geom_bar(position = "fill") +
scale_x_discrete(limits = c("a", "", "b", "", "c", "d"))
### Remove white line in background by removing all x grid lines
ggplot (my.data, aes(x = x, fill = y)) +
geom_bar(position = "fill") +
scale_x_discrete(limits = c("a", "", "b", "", "c", "d")) +
theme(panel.grid.minor.x = element_blank(),
panel.grid.major.x = element_blank())
Jak mogę usunąć czarny znacznik wyboru między a
i b
?
Jeśli muszę zmienić sposób wstawiania spacji między paskami, w jaki sposób mogę to zrobić i zachować strukturę wykresu?
kolejny "hacky" sposób to zrobić byłoby dodać coś takiego do 'theme':' osi. ticks.x = element_line (color = c ("czarny", "przezroczysty", "czarny", "przezroczysty", "czarny", "czarny")) ' – Jota
Tak, to prawdopodobnie kulminacja ciągu myśli OP, i jest przynajmniej czytelny. Zaletą metody "skalowania" jest to, że automatycznie zajmuje się wszystkimi liniami siatki i kleszczami bez tworzenia motywów; wadą jest to, że kod nie ma sensu. – alistaire
Doskonale, dziękuję! "Hacky" sposób jest zgodny z moją pierwotną linią myślenia, ale widzę korzyści z używania 'facet_grid'. Jeśli mam nazwy aspektów i chcę je w porządku nie alfabetycznym (tj. "Pierwszy" "drugi" "dalej"), jak mam to zrobić? Ta modyfikacja ma je w porządku alfabetycznym. 'my.data%>% mutate (grp = case_when (. $ x == 'a' ~" first ", . $ x == 'b' ~" second ", TRUE ~" forth "))> % ggplot (aes (x, wypełnienie = y)) + geom_bar (position = 'fill') + facet_grid (. ~ Grp, space = 'free_x', skales = 'free_x') ' – MST