Это работает, я думаю:
si <- read.csv('sampledata.csv', sep=' ')
myplot <- ggplot(data = si
,aes(DEGREE)
)
myplot <- myplot + geom_bar()
myplot <- myplot + labs(title = "Degree by Urban/Rural", y = "Percent", x = "DEGREE")
myplot <- myplot + geom_text(aes(y = ((..count..)/tapply(..count..,..PANEL..,sum)[..PANEL..]), label = scales::percent((..count..)/tapply(..count..,..PANEL..,sum)[..PANEL..])), stat = "count", vjust = -0.25)
myplot <- myplot + facet_wrap(~URBRURAL)
myplot <- myplot + theme(axis.text.x = element_text(angle = 20, hjust = 1))
myplot
На самом деле у этикетки оси не процентов, а реальные отсчеты, как они были в исходном рисунке, надписи на бары представляют проценты, посмотрите на строку 18 ниже, что показывает, что 45 не является предварительным значением, а фактическим числом этой группы в данные образцов, которые вы предоставили, тогда как 15,7% на одном и том же баре в соответствующей фасете представляют процент.
library(dplyr)
as.data.frame(si %>% group_by(URBRURAL, DEGREE) %>% summarise(n=n()))
1 Country village, other type of community Above higher secondary level, other qualification 6
2 Country village, other type of community Above lowest qualification 16
3 Country village, other type of community Higher secondary completed 9
4 Country village, other type of community Lowest formal qualification 31
5 Country village, other type of community No formal qualification 20
6 Country village, other type of community University degree completed 1
7 Farm or home in the country Above lowest qualification 1
8 Farm or home in the country Higher secondary completed 1
9 Farm or home in the country Lowest formal qualification 5
10 Farm or home in the country No formal qualification 1
11 Farm or home in the country University degree completed 1
12 Suburb, outskirt of a big city Above higher secondary level, other qualification 45
13 Suburb, outskirt of a big city Above lowest qualification 57
14 Suburb, outskirt of a big city Higher secondary completed 75
15 Suburb, outskirt of a big city Lowest formal qualification 48
16 Suburb, outskirt of a big city No formal qualification 23
17 Suburb, outskirt of a big city University degree completed 15
18 Town or small city Above higher secondary level, other qualification 45
вы можете поделиться образец данных? –
Много потенциальных дубликатов там, в том числе [здесь] (http://stackoverflow.com/questions/4725339/percentage-on-y-lab-in-a-faceted-ggplot-barchart), [здесь] (http : //stackoverflow.com/questions/9614720/obtaining-percent-scales-reflective-of-individual-facets-with-ggplot2) и [здесь] (http://stackoverflow.com/questions/12236160/ggplot-sum -percentages-для-каждого-фасеточного Респект-заливку). Вы пробовали какие-либо варианты в ответах? – aosmith
[Вот пример моих данных] (http://s000.tinyupload.com/?file_id=02792393224272274158) –