2017-01-17 4 views
2

Я пытаюсь соответствовать этикетки с моей круговой диаграммы с ggplot2:ggplot2 - PieChart - метки значений в обратном порядке

Код:

values=c(59,4,4,11,26) 
labels=c("catA", "catB","catC","catD","catE") 
pos = cumsum(values)- values/2 
graph <- data.frame(values, labels,pos) 

categoriesName="Access" 
percent_str <- paste(round(graph$values/sum(graph$values) * 100,1), "%", sep="") 

values <- data.frame(val = graph$values, Type = graph$labels, percent=percent_str, pos = graph$pos) 

pie <- ggplot(values, aes(x = "", y = val, fill = Type)) + 
    geom_bar(width = 1,stat="identity") + 
    geom_text(aes(x= "", y=pos, label = val), size=3) 
pie + coord_polar(theta = "y") 

Выходные: myoutput

Я читал эти темы , но без каких-либо успехов:

ответ

5

Начиная с ggplot2 2.2.0, вы можете использовать position_stack с vjust = .5 к центру этикетки в сложенных баров диаграммы (и так круговые диаграммы). Вам больше не нужно вычислять позицию вне ggplot2. См. NEWS для получения более подробной информации об этих изменениях.

ggplot(values, aes(x = "", y = val, fill = Type)) + 
    geom_bar(width = 1,stat="identity") + 
    geom_text(aes(label = val), size=3, position = position_stack(vjust = 0.5)) + 
    coord_polar(theta = "y") 

enter image description here

Смежные вопросы