Сложенный барплот с хорошо расположенными датами на оси X - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь построить составной барплот, без промежутков между барами и датами на оси абсцисс. Чтобы добиться этого, я установил ширину, равную разнице между следующими датами, и уменьшил положение x на половину разницы в датах. Поэтому, если Дата 2018-01-31, я хочу, чтобы бар начинался точно в эту дату и заканчивался в следующую дату (2018-02-28). Пока это работает хорошо, но при введении этой логики позиционирования c мои бары перестали укладываться (рисунок: бары перекрываются, но не уложены -> в сумме до 1). Как я могу их пересчитать? enter image description here

ggplot(weights_gg2, aes(x=Date, y=Exposure, fill=Bond)) +
  geom_bar(stat="identity", colour="white", width=rep(c(diff(weights_df$Date), 20), 13), position = position_nudge(x=rep(c(diff(weights_df$Date), 20), 13)/2)) +
  theme_bw(base_size=12)

Необходимые данные: weights_df содержит все данные и даты, а weights_gg2 уже расплавлен для ggplot

РЕШЕНИЕ:

Манипулируйте входными данными, а не изменяйте положение впоследствии:

hjust <- rep(c(diff(weights_df$Date), 20), 13)/2
ggplot(weights_gg2, aes(x=Date+hjust, y=Exposure, fill=Bond)) +
  geom_bar(stat="identity", colour="white", width=rep(c(diff(weights_df$Date), 20), 13))+
  theme_bw(base_size=12)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...