Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
R 从分组的刻面网格条形图中删除未使用的因子_R_Ggplot2_Geom Bar_Facet Grid - Fatal编程技术网

R 从分组的刻面网格条形图中删除未使用的因子

R 从分组的刻面网格条形图中删除未使用的因子,r,ggplot2,geom-bar,facet-grid,R,Ggplot2,Geom Bar,Facet Grid,我已经阅读了搜索结果的第一页,但似乎没有任何效果 我需要创建一个图,将未使用的级别放在X上,以便将强烈不同意、不同意和轻度不同意分为“诽谤者”方面,然后将不确定和轻度同意分为“被动”方面,将同意和强烈同意分为“促进者”方面 这是数据的dput structure(list(area = c("NPS.recomm", "invest", "commit", "involve", "all.consid", "exit.in", "FBM.recomm", "NPS.recomm", "inve

我已经阅读了搜索结果的第一页,但似乎没有任何效果

我需要创建一个图,将未使用的级别放在X上,以便将强烈不同意、不同意和轻度不同意分为“诽谤者”方面,然后将不确定和轻度同意分为“被动”方面,将同意和强烈同意分为“促进者”方面

这是数据的dput

structure(list(area = c("NPS.recomm", "invest", "commit", "involve", 
"all.consid", "exit.in", "FBM.recomm", "NPS.recomm", "invest", 
"commit", "involve", "all.consid", "exit.in", "FBM.recomm", "NPS.recomm", 
"invest", "commit", "involve", "all.consid", "exit.in", "FBM.recomm"
), response.cat = c("Strongly \ndisagree", "Disagree", "Mildly \ndisagree", 
"Uncertain", "Mildly \nagree", "Agree", "Strongly \nagree", "Strongly \ndisagree", 
"Disagree", "Mildly \ndisagree", "Uncertain", "Mildly \nagree", 
"Agree", "Strongly \nagree", "Strongly \ndisagree", "Disagree", 
"Mildly \ndisagree", "Uncertain", "Mildly \nagree", "Agree", 
"Strongly \nagree"), response.set = c("Detractors", "Detractors", 
"Detractors", "Passive", "Passive", "Promoters", "Promoters", 
"Detractors", "Detractors", "Detractors", "Passive", "Passive", 
"Promoters", "Promoters", "Detractors", "Detractors", "Detractors", 
"Passive", "Passive", "Promoters", "Promoters"), split = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L), .Label = c("curr.score", "prior.score", "bench.score"
), class = "factor"), score = c(7, 6, 3, 15, 16, 39, 14, 5, 4, 
4, 15, 22, 33, 18, 14, 10, 6, 16, 15, 29, 10)), row.names = c(NA, 
-21L), .Names = c("area", "response.cat", "response.set", "split", 
"score"), class = "data.frame")
这是当前的代码

col.set <- c("dodgerblue4", "#FF9933", "gold")
plot.labels <- c("group1","group2","group3")
curr.plot <- ggplot(plot.data, aes(response.cat, score)) +   
  facet_grid(. ~ response.set, scales="free_x", space = "free_x") +
  geom_bar(aes(fill = split), position = "dodge", stat="identity")+
  scale_fill_manual(values=c(col.set), labels= plot.labels )+
  ylim(c(0,100))+
  theme(legend.title = element_blank(), legend.position = "bottom", 
        legend.text=element_text(colour= "gray23"), legend.key.height=unit(3,"mm")) +
  theme(axis.title= element_blank()) +
  scale_x_discrete(limits = c("Strongly \ndisagree","Disagree","Mildly \ndisagree","Uncertain","Mildly \nagree","Agree","Strongly \nagree"))+
  geom_text(aes(fill = split, label = paste0(score,"%")), colour = "gray23", vjust=-1, position=position_dodge(.9),size=3)+  
  theme(panel.grid.minor.y = element_blank()) +
  theme(panel.grid.major.y = element_line(colour = "gray")) +
  theme(panel.grid.major.x =element_blank(), panel.grid.minor.x =element_blank()) +
  theme(panel.background = element_rect(fill="white")) +
  theme(axis.text.x = element_text(colour = "gray23")) +
  theme(axis.text.y = element_text(colour = "gray23")) +
  theme(axis.ticks.y=element_blank()) 

col.set问题在于您使用了
scale\u x\u discrete
。您可以将
response.cat
转换为有序因子:

plot.data$response.cat <- factor(plot.data$response.cat, levels = c("Strongly \ndisagree","Disagree","Mildly \ndisagree","Uncertain","Mildly \nagree","Agree","Strongly \nagree"))

ggplot(plot.data, aes(response.cat, score)) +   
  facet_grid(. ~ response.set, scales="free_x", space = "free_x") +
  geom_bar(aes(fill = split), position = "dodge", stat="identity")+
  scale_fill_manual(values=c(col.set), labels= plot.labels )+
  ylim(c(0,100))+
  theme(legend.title = element_blank(), legend.position = "bottom", 
        legend.text=element_text(colour= "gray23"), legend.key.height=unit(3,"mm")) +
  theme(axis.title= element_blank()) +
  geom_text(aes(fill = split, label = paste0(score,"%")), colour = "gray23", vjust=-1, position=position_dodge(.9),size=3)+  
  theme(panel.grid.minor.y = element_blank()) +
  theme(panel.grid.major.y = element_line(colour = "gray")) +
  theme(panel.grid.major.x =element_blank(), panel.grid.minor.x =element_blank()) +
  theme(panel.background = element_rect(fill="white")) +
  theme(axis.text.x = element_text(colour = "gray23")) +
  theme(axis.text.y = element_text(colour = "gray23")) +
  theme(axis.ticks.y=element_blank()) 
plot.data$response.cat