position_dodge на geom_text на уклоненном барплоте - PullRequest
0 голосов
/ 09 ноября 2018

Мой DF выглядит так:

      Date          H2 Value
2018-06-04      H2_Avg  0.08
2018-06-07      H2_Avg  0.11
2018-06-16      H2_Avg  0.12
2018-06-20      H2_Avg  0.13
2018-06-23      H2_Avg  0.24
2018-06-26      H2_Avg  0.16
2018-06-30      H2_Avg  0.24
2018-07-04      H2_Avg  0.38
2018-07-09      H2_Avg  0.44
2018-07-12      H2_Avg  0.34
2018-06-04 H2_disabled  0.07
2018-06-07 H2_disabled  0.09
2018-06-16 H2_disabled  0.10
2018-06-20 H2_disabled  0.14
2018-06-23 H2_disabled  0.23
2018-06-26 H2_disabled  0.18
2018-06-30 H2_disabled  0.22
2018-07-04 H2_disabled  0.33
2018-07-09 H2_disabled  0.27
2018-07-12 H2_disabled  0.24

Я хочу нанести на график уклоненный барплот со значениями, записанными в столбцах. Мой код для построения выглядит так:

DF %>% ggplot() +
  geom_col(aes(Date, Value, fill = H2), position = "dodge") +
  geom_text(aes(Date, Value, label = Value), 
            position = position_dodge(width = 1), 
            vjust = 1.5)

Это выводит следующее: enter image description here Как видите, значения, указанные в geom_text, неразборчивы, если различия между двумя столбцами невелики. Есть ли способ улучшить это? Перелистывание координат и затем использование аргумента position_dodge, как предложено здесь: Положение geom_text на уклоненном барплоте не работает для моих данных из-за небольших различий между двумя группами.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Я наконец нашел причину проблемы. Это было связано с форматированием столбца «Дата». Я отформатировал его как формат даты POSIXct. По какой-то причине это перепуталось с форматированием position_dodge, как описано в моем исходном вопросе. Переформатирование даты в виде простого символа решило вопрос и дало мне тот же сюжет, что и решение @ alex_555.

0 голосов
/ 09 ноября 2018

Попробуйте:

DF %>% ggplot(aes(Date, Value, fill = H2)) +
  geom_col(position = "dodge") +
  geom_text(aes(label = Value), 
            position = position_dodge(width=1),
            vjust=1.5)

Обратите внимание, что я сделал код немного короче, включив aes() уже в ggplot().

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...