Если вы предоставите воспроизводимый пример, я могу проверить его на моей стороне. Идея состоит в том, чтобы изменить width
в geom_bar
и width
в position_dodge()
. Вам может потребоваться изменить значения в следующем примере, используя данные mtcars
.
library(ggplot2)
# without space
ggplot(mtcars, aes(x= 1, y = mpg, fill = factor(cyl))) +
geom_bar(stat = "identity", position= "dodge", width = 0.7)
# add space
ggplot(mtcars, aes(x= 1, y = mpg, fill = factor(cyl))) +
geom_bar(stat = "identity", position = position_dodge(width=0.9), width = 0.7)
Создано в 2020-01-17 пакетом Представлять (v0.3.0)
Редактировать
Существует несколько способов вставить разрыв между указанными c барами. Интуитивно понятным способом является использование add_row()
для нескольких пустых строк и повторная установка levels
:
library(tidyverse)
df <- data.frame(x = c("a", "b", "c", "d", "e"),
y = c(1, 2, 5, 6, 3))
df <- add_row(df, x = c(" ", " "), y = c(NA))
df$x <- factor(df$x, levels = c("a", " ", "b", "c", "d", " ", "e"))
ggplot(df, aes(x= x, y = y, fill = x)) +
geom_bar(stat = "identity", na.rm = TRUE,
position = "dodge", width = 1) +
scale_fill_manual(values=c("red", "white", "green","blue","maroon",
"white","navy"))
Создано в 2020-01-18 Представить пакет (v0.3.0)