Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ggplot2标记饼图问题(以及要标记的chage grom文本)_R_Ggplot2_Pie Chart - Fatal编程技术网

使用ggplot2标记饼图问题(以及要标记的chage grom文本)

使用ggplot2标记饼图问题(以及要标记的chage grom文本),r,ggplot2,pie-chart,R,Ggplot2,Pie Chart,我有以下问题:我无法在R中使用ggplot2在饼图上正确添加标签 代码如下: establecimientos <- c("A", "A","A","D","D","D","D","D","D","F","F","F","F",&qu

我有以下问题:我无法在R中使用ggplot2在饼图上正确添加标签

代码如下:

establecimientos <- c("A", "A","A","D","D","D","D","D","D","F","F","F","F","F","F","F","F","F","F","F","F","F","E","E","E","E","E","E","E","G","G","G","G","G","Y","Y","A","A","A","A","A","A","B","B")


pestab <- data.frame(establecimientos) %>% 
  group_by(establecimientos) %>% 
  mutate(cnt = n(),
         pct = percent(cnt / nrow(.), accuracy = 1)) %>%
  unique %>% ungroup %>% 
  mutate(place = cumsum(cnt) - cnt/2) %>% 
  ggplot(data = ., 
         aes(x = factor(1), weight = cnt, fill = factor(establecimientos))) + 
  geom_bar(position = "stack") +
  scale_y_continuous(breaks = seq(0, length(establecimientos), length(establecimientos)/4), 
                     labels = c("0", "25%", "50%", "75%", "100%")) + 
  coord_polar(theta='y') +
  geom_text(aes(x = 1.3, y = place, label = pct)) +
  theme(axis.text.y = element_blank(), 
        axis.title.y = element_blank(), 
        axis.ticks.y = element_blank(),
        axis.title.x = element_blank()) +
  labs(fill = "Establecimientos")

pestab
establecimientos%
突变(cnt=n(),
pct=百分比(cnt/nrow(.),精度=1))%>%
唯一%>%解组%>%
突变(位置=总和(cnt)-cnt/2)%>%
ggplot(数据=。)。,
aes(x=系数(1),重量=碳纳米管,填充=系数(establecimientos))+
几何钢筋(位置=“堆叠”)+
连续缩放(打断=顺序(0,长度(establecimientos),长度(establecimientos)/4),
标签=c(“0”、“25%”、“50%”、“75%”、“100%”)+
极坐标(theta='y')+
几何图形文本(aes(x=1.3,y=place,label=pct))+
主题(axis.text.y=element_blank(),
axis.title.y=元素_blank(),
axis.ticks.y=元素_blank(),
axis.title.x=元素_blank())+
实验室(fill=“Establecimientos”)
佩斯塔布
这是乘积=s

此外,我想从geom_文本更改为geom_标签,但我不知道如何做


谢谢您的帮助。

我建议下一种方法:

library(tidyverse)
#Data 1
establecimientos <- c("A", "A","A","D","D","D","D","D","D","F","F","F","F","F","F","F","F","F","F","F","F","F","E","E","E","E","E","E","E","G","G","G","G","G","Y","Y","A","A","A","A","A","A","B","B")
#Data 2
df1 <- pestab <- data.frame(establecimientos) %>% 
  group_by(establecimientos) %>% 
  mutate(cnt = n(),
         pct = percent(cnt / nrow(.), accuracy = 1)) %>%
  unique %>% ungroup %>% 
  mutate(place = cumsum(cnt) - cnt/2)
#Plot
ggplot(df1,aes(x = "", y = cnt, fill = establecimientos)) +
  geom_bar(width = 1, stat = "identity", color = "white") +
  scale_y_continuous(breaks = seq(0, length(establecimientos), length(establecimientos)/4), 
                     labels = c("0", "25%", "50%", "75%", "100%"))+
  coord_polar("y", start = 0) +
  geom_text(
    aes(y = cnt, label = pct), 
    color = "black", 
    position = position_stack(vjust = 0.5)
  )+
  theme(axis.text.y = element_blank(), 
        axis.title.y = element_blank(), 
        axis.ticks.y = element_blank(),
        axis.title.x = element_blank()) +
  labs(fill = "Establecimientos")
输出:

#Plot 2
ggplot(df1,aes(x = "", y = cnt, fill = establecimientos)) +
  geom_bar(width = 1, stat = "identity", color = "white") +
  scale_y_continuous(breaks = seq(0, length(establecimientos), length(establecimientos)/4), 
                     labels = c("0", "25%", "50%", "75%", "100%"))+
  coord_polar("y", start = 0) +
  geom_label(
    aes(y = cnt, label = pct), 
    color = "black", 
    position = position_stack(vjust = 0.5),show.legend = F
  )+
  theme(axis.text.y = element_blank(), 
        axis.title.y = element_blank(), 
        axis.ticks.y = element_blank(),
        axis.title.x = element_blank()) +
  labs(fill = "Establecimientos")