У меня есть следующий фрейм данных
unit <- c("a", "b", "c", "d")
top1990 <- c(100, 80, 70, 90)
base1990 <- c(40, 60, 20, 30)
top2000 <- c(120, 85, 65, 80)
base2000 <- c(40, 65, 25, 15)
df <- data.frame(unit, top1990, base1990, top2000, base2000)
unit top1990 base1990 top2000 base2000
a 100 40 120 40
b 80 60 85 65
c 70 20 65 25
d 90 30 80 15
Мне нужно построить на одном графике для каждого блока два бара, один для 1990 года и другой для 2000 года. Каждый столбец должен начинаться со значения "base ***" и заканчиваться на значение "топ ****". Мне также нужно упорядочить единицы по «top1990» (по убыванию).
Я использовал функцию geom_segment библиотеки ggplot2 следующим образом
df$unit <- factor(df$unit, levels = df$unit[order(df$top1990, decreasing = T)])
ggplot(data = df) + geom_segment(aes(x=df$unit, xend=df$unit, y=df$top1990, yend=df$base1990), size = 7, color = "blue") +
geom_segment(aes(x=df$unit, xend=df$unit, y=df$top2000, yend=df$base2000), size = 7, color = "red")
Тем не менее, я получил этот , в котором столбцы перекрываются, поэтому мне они понадобятся бок о бок.
![enter image description here](https://i.stack.imgur.com/k3DyT.jpg)
Чего мне не хватает?