2012-01-21 21 views
7

Chỉ cần cố gắng để sửa chữa dán nhãn chồng chéo này:Pie cốt truyện nhận được văn bản của nó trên đầu trang của mỗi khác

Mã của tôi:

values=c(164241,179670) 
    labels=c("Private", "Public") 
    colors=c("#cccccc", "#aaaaaa") 
    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) 

    pie <- ggplot(values, aes(x = "", y = val, fill = Type)) + geom_bar(width = 1) + 
      geom_text(aes(y = **val + 1**, **hjust=0.5**, **vjust=-0.5**, label = percent), colour="#333333", face="bold", size=10) + 
      coord_polar(theta = "y") + ylab(NULL) + xlab(NULL) + 
      scale_fill_manual(values = graph$colors) + labs(fill = graph$categoriesName) + 
      opts(title = graph$title, 
       axis.text.x = NULL, 
       plot.margin = unit(c(0,0,0,0), "lines"), 
       plot.title = theme_text(face="bold", size=14), 
       panel.background = theme_rect(fill = "white", colour = NA)) 
    print(pie) 

Cố gắng rối tung với các giá trị được đánh dấu bằng dấu hoa thị (* * **) nhưng không có ở đâu cả. Bất kỳ trợ giúp nào được đánh giá cao.

Trả lời

14

đây là một ví dụ:

pie <- ggplot(values, aes(x = "", y = val, fill = Type)) + 
    geom_bar(width = 1) + 
    geom_text(aes(y = val/2 + c(0, cumsum(val)[-length(val)]), label = percent), size=10) 
pie + coord_polar(theta = "y") 

enter image description here

lẽ điều này sẽ giúp bạn hiểu làm thế nào nó hoạt động:

pie + coord_polar(theta = "y") + 
    geom_text(aes(y = seq(1, sum(values$val), length = 10), label = letters[1:10])) 

enter image description here

+0

cảm ơn bạn! thực sự hữu ích. – fabiopedrosa

+0

Bạn có biết cách đặt chúng nhiều hơn ở bên ngoài không? tăng bán kính văn bản. – fabiopedrosa

+0

thử 'geom_text (aes (x = 1.3, y = ...' – kohske

Các vấn đề liên quan