相关疑难解决方法(0)

R + ggplot2 =>在构面饼图上添加标签

我想在分面饼图上添加数据标签.
也许有人可以帮助我.

我的数据:

year <- c(1,2,1,2,1,2)
prod <- c(1,1,2,2,3,3)
quantity <- c(33,50,33,25,34,25)

df <- data.frame(year, prod, quantity)
rm(year, prod, quantity)
Run Code Online (Sandbox Code Playgroud)

码:

library(ggplot2)

# center's calculated by hand
centr2 <- c(16, 25, 49, 62.5, 81, 87.5)

ggplot(data=df, aes(x=factor(1), y=quantity, fill=factor(prod))) +
    geom_bar(stat="identity") +
    geom_text(aes(x= factor(1), y=centr2, label = df$quantity), size=10) +
    facet_grid(facets = .~year, labeller = label_value) +
    coord_polar(theta = "y")
Run Code Online (Sandbox Code Playgroud)

我的结果是:

馅饼炭

如果我删除coord_polar(theta ="y"),我将得到以下图:

酒吧情节

现在我很清楚,为什么我的数据标签不匹配.
但我不知道如何解决它.

我读到:
1.在饼图上放置标签
2. 在带有刻面密度的ggplot中添加文本
3. 饼图将其文本放在彼此的顶部

但没有找到答案.

r facet ggplot2 pie-chart

23
推荐指数
1
解决办法
2万
查看次数

ggplot,facet,piechart:将文本放在饼图切片的中间

我正在尝试使用ggplot生成一个刻面的饼图,并面临在每个切片中间放置文本的问题:

dat = read.table(text = "Channel Volume Cnt
                         AGENT   high   8344
                         AGENT medium   5448
                         AGENT    low  23823
                         KIOSK   high  19275
                         KIOSK medium  13554
                         KIOSK    low  38293", header=TRUE)

vis = ggplot(data=dat, aes(x=factor(1), y=Cnt, fill=Volume)) +
  geom_bar(stat="identity", position="fill") +
  coord_polar(theta="y") +
  facet_grid(Channel~.) +
  geom_text(aes(x=factor(1), y=Cnt, label=Cnt, ymax=Cnt), 
            position=position_fill(width=1))
Run Code Online (Sandbox Code Playgroud)

输出: 在此输入图像描述

geom_text应该调整哪些参数才能将数字标签放在饼图切片的中间?

相关问题是Pie plot将其文本放在彼此的顶部,但它不处理facet的情况.

更新:在上面的问题中遵循Paul Hiemstra的建议和方法我改变了代码如下:

---> pie_text = dat$Cnt/2 + c(0,cumsum(dat$Cnt)[-length(dat$Cnt)])

     vis = ggplot(data=dat, aes(x=factor(1), y=Cnt, fill=Volume)) +
     geom_bar(stat="identity", position="fill") +
     coord_polar(theta="y") +
     facet_grid(Channel~.) +
     geom_text(aes(x=factor(1), 
--->               y=pie_text, 
                   label=Cnt, ymax=Cnt), …
Run Code Online (Sandbox Code Playgroud)

visualization r facet ggplot2 pie-chart

18
推荐指数
3
解决办法
2万
查看次数

如何使用ggplot2创建带百分比标签的饼图?

我有一个数据框,想要在一个特定列上创建一个饼图,表示此列中每个级别的百分比.

   data <- data.frame(a=c("a1","a1","a2","a3","a1","a2","a3","a4","a2","a1","a5","a4","a3"),
                   b=1:13)
Run Code Online (Sandbox Code Playgroud)

换句话说,我想要一个饼图,表明a1,a2,......的出现百分比.

另外,我需要在图表上显示百分比.我怎样才能用ggplot2包完成这一切?

任何小小的帮助将不胜感激!

r ggplot2 pie-chart

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

ggplot2 ×3

pie-chart ×3

r ×3

facet ×2

visualization ×1