Альтернативная позиция geom_text с помощью hjust

Я строю гистограмму и используюgeom_text вставить значение каждого стека. Сложность, с которой я сталкиваюсь, заключается в том, что некоторые стеки очень маленькие / узкие, так что текст из двух стеков перекрывает друг друга и, следовательно, не очень удобочитаем. Я хотел бы настроить расположение текста таким образом, чтобы, например, положение текста чередовалось междуhjust == 1 а такжеhjust == -1 для каждого стека, чтобы не было перекрытий (или любого другого метода, который приведет к читаемому тексту).

Вот пример того, что я сейчас делаю (dput изmydf предоставляется ниже):

library(ggplot2)

ggplot(mydf, aes(x=variable, y = value, fill = Category)) + 
  geom_bar(stat="identity") +
  geom_text(aes(label = value, y = pos-(value/2)), size = 3) 

Что я пробовал до сих пор:

С помощьюposition = position_dodge(width = 0.5) а такжеposition = position_jitter(h =0.5, w = 0.5) но ни один из них не привел к тому, что я пытался сделать.

Моей первой мыслью было определитьhjust = c(1,-1) надеясь, что он будет переработан и тексты будут чередоваться междуhjust == 1 а такжеhjust == -1 но это приводит к сообщению об ошибке:

Error: Incompatible lengths for set aesthetics: size, hjust

Я также попытался определитьsize = c(3,3,3,3,3,3,3,3,3), hjust = c(1,-1,1,-1,1,-1,1,-1,1) но это приводит к тому же сообщению об ошибке.

Я был бы признателен за несколько советов о том, как добиться этого правильным способом (и я также открыт для других предложений).

Я не мог понять, почемуdput не сработало (и у меня это не сработало), поэтому вот данные в удобочитаемом формате:

    Category variable value   pos maxpos
1        AX       WW  47.8  47.8  184.1
2        AY       WW   5.6  53.4  184.1
3        AZ       WW  15.8  69.2  184.1
4        BX       WW  31.4 100.6  184.1
5        BY       WW  11.7 112.3  184.1
6        BZ       WW  10.7 123.0  184.1
7        CX       WW   2.2 125.2  184.1
8        CY       WW  21.4 146.6  184.1
9        CZ       WW  37.5 184.1  184.1
10       AX       SM  39.8  39.8  148.6
11       AY       SM   2.9  42.7  148.6
12       AZ       SM  13.2  55.9  148.6
13       BX       SM  22.7  78.6  148.6
14       BY       SM   7.3  85.9  148.6
15       BZ       SM   8.9  94.8  148.6
16       CX       SM   1.6  96.4  148.6
17       CY       SM  17.3 113.7  148.6
18       CZ       SM  34.9 148.6  148.6
19       AX     AsIs 156.9 156.9  519.0
20       AY     AsIs  13.1 170.0  519.0
21       AZ     AsIs  70.5 240.5  519.0
22       BX     AsIs  72.6 313.1  519.0
23       BY     AsIs  30.7 343.8  519.0
24       BZ     AsIs  35.6 379.4  519.0
25       CX     AsIs   5.2 384.6  519.0
26       CY     AsIs  44.8 429.4  519.0
27       CZ     AsIs  89.6 519.0  519.0

Ответы на вопрос(1)

Ваш ответ на вопрос