У меня есть гистограмма в R с использованием ggplot2, которая показывает разные бары разных категорий.Поскольку некоторые столбцы имеют значение = 0, я хочу провести вертикальную линию между различными категориями, чтобы их можно было лучше различить визуально.
Я уже пытался добавить его с помощью аргументов panel.grid.major.x
и panel.grid.minor.x
, ноэто не сработало.Возможно, также помогло бы, если бы я мог изменить расстояние между столбцами категорий разных сетей вместо всех, когда я делаю это с аргументом width
geom_bar
Например.на рисунке ниже: я хочу добавить вертикальную линию и расстояние между фиолетовой полосой категории 3 (класс 5) и синей полосой (класс 1) категории 4.
Вот мой код:
data <- categories.df
ggplot(data, aes(factor(Name, levels = c("Cat 1", "Cat 2", "Cat 3", "Cat 4", "Cat 5")), Count, fill = factor(SC_Class, levels = c("Class 1", "Class 2", "Class 3", "Class 4", "Class 5")))) +
geom_bar(stat = "identity", position = position_dodge(width = 1), width = 0.8) +
scale_fill_manual(values = c("#6C8EBF", "red", "#74767a", "orange","purple")) +
labs(fill = "") +
ylim(0,25) +
xlab("Category") + ylab("Count") +
theme(legend.position = c(1,1), legend.justification = c(1,1),
axis.text.x = element_text(face = "bold", size=14),
axis.text.y = element_text(face = "bold", size=14),
axis.title.x = element_text(colour = "#6C8EBF", face = "bold", size =16),
axis.title.y = element_text(colour = "#6C8EBF", face = "bold", size =16),
panel.grid.major.y = element_line(size = 1, colour="#DAE8FC"),
panel.grid.minor.y = element_line(colour="#DAE8FC"),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_line(size = 1, colour="#DAE8FC"),
plot.background = element_blank(),
panel.background = element_blank(),
panel.border = element_blank(),
legend.text = element_text(size=12, face="bold"))
Как добавить вертикальную линию и пробелы между различными категориями, используя ggplot2 в R?