Я делаю барграф в ggplot2, и для объяснения причин мне нужны пробелы между некоторыми из моих баров. Я использую лимиты в scale_x_discrete
, чтобы вставить пустые бары, что дает мне расстояние, которое мне нужно.Удалите одну галочку по оси x в ggplot2 в R?
Разрыв между группами b
и c
в моем макете данных выглядит идеально, но разрыв между a
и b
еще имеет черную галочку и белую линию в фоновом режиме. Мне не нужны никакие линии сетки оси x, поэтому я могу легко решить проблему белой линии, но я не могу решить, как избавиться от метки.
Я использую R версии 3.3.1 (2016-06-21) - «Ошибка в волосах», работая в RStudio и код требует 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())
Как удалить черный отметка между a
и b
?
Если мне нужно изменить способ ввода пространств между столбцами, как мне это сделать и поддерживать структуру графика?
другой "Hacky" способ сделать это было бы добавить что-то вроде этого в 'theme':' оси. ticks.x = element_line (color = c («черный», «прозрачный», «черный», «прозрачный», «черный», «черный»)) – Jota
Да, это, вероятно, кульминация движения мысли OP, и, по крайней мере, является удобочитаемым. Преимущество подхода «масштаб» заключается в том, что он автоматически обрабатывает все линии сетки и тики без их использования; недостатком является то, что код не имеет смысла. – alistaire
Отлично, спасибо! «Хакерный» способ следует моей первоначальной линии мышления, но я вижу преимущество использования 'facet_grid'. Если я назвал грани и хочу, чтобы они были в алфавитном порядке (т. Е. «Первый» «второй», «четвертый»), как мне это сделать? Эта модификация имеет их в алфавитном порядке. 'my.data%>% mutate (grp = case_when (. $ x == 'a' ~" first ", . $ x == 'b' ~" second ", ИСТИНА ~" вперед "))%> % ggplot (aes (x, fill = y)) + geom_bar (position = 'fill') + facet_grid (. ~ Grp, space = 'free_x', scale = 'free_x') ' – MST