Я рисую столбчатую диаграмму с накоплением и использую 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
dput
по какой-то причине - person David Arenburg   schedule 08.07.2014