Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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 将标签添加到堆叠平面条形图-ggplot2_R_Ggplot2 - Fatal编程技术网

R 将标签添加到堆叠平面条形图-ggplot2

R 将标签添加到堆叠平面条形图-ggplot2,r,ggplot2,R,Ggplot2,我试图将标签添加到已刻面的堆叠条形图中,但标签与实际数据不匹配,并且放置不正确。我能够让标签正确地显示一个单独的图形,但我不确定我这次尝试的错误之处 以下代码对我来说工作正常: figure1 <- ggplot(agent_q1, aes(x=Region, y = Proportion, fill = Answer, label = ifelse(Proportion > .1, scales::percent(Proportion), ""))) + geom_bar(pos

我试图将标签添加到已刻面的堆叠条形图中,但标签与实际数据不匹配,并且放置不正确。我能够让标签正确地显示一个单独的图形,但我不确定我这次尝试的错误之处

以下代码对我来说工作正常:

figure1 <- ggplot(agent_q1, aes(x=Region, y = Proportion, fill = Answer, 
label = ifelse(Proportion > .1, scales::percent(Proportion), ""))) +
geom_bar(position = "fill", stat = "identity") +
geom_text(family = "Calibri Light", size = 5, position = 
position_stack(vjust = 0.5), check_overlap = TRUE) +
scale_fill_geico(palette = "bold") +
scale_y_continuous(labels = scales::percent_format())

您的数据有2倍于同一类别,因此我们需要首先解决这一问题:

library(dplyr)
agent_q2 <- agent_q2 %>%
  group_by(Answer, Question) %>%
  mutate(prop_sum = sum(Proportion))
agent_for_plot <- agent_q2[!duplicated(agent_q2[c(3,7)]),]
这让我感到:


请注意,我没有你的调色板,也不能识别“Calibri灯光”。此外,由于某些原因,它没有将顶部图表的值居中对齐。。。但是这开始朝着正确的方向发展。

请将您的数据样本作为
dput(数据)
发布好吗?这将允许我们使用您的数据。@Sven我相信我已经正确地输入了数据(见上文)。如果您还需要什么,请告诉我!我们需要查看您的数据。因此,我们需要能够在脚本中复制/粘贴
dput
命令的输出。它应该看起来像
结构(list…
如果数据太大,可以尝试使用
dput(head(data))
好的,我想我这次做得很对o,为什么您觉得这个输出不正确?我实际上也做了同样的事情,看起来还可以。请记住,您没有显示低于10%的标签。也许可以将该值更改为5%(.05)并将大小减少到3。我还添加了
hjust=0.5
,以防万一。谢谢!我们能够修改它并使其工作!!
    dput(agent_q2)
structure(list(Region = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Lakeland", 
"Other"), class = "factor"), Impression = c("Dissatisfied", "Dissatisfied", 
"Dissatisfied", "Dissatisfied", "Dissatisfied", "Dissatisfied", 
"Dissatisfied", "Satisfied", "Satisfied", "Satisfied", "Satisfied", 
"Satisfied", "Satisfied", "Dissatisfied", "Dissatisfied", "Dissatisfied", 
"Dissatisfied", "Dissatisfied", "Dissatisfied", "Satisfied", 
"Satisfied", "Satisfied", "Satisfied", "Satisfied", "Dissatisfied", 
"Dissatisfied", "Dissatisfied", "Dissatisfied", "Dissatisfied", 
"Dissatisfied", "Dissatisfied", "Satisfied", "Satisfied", "Satisfied", 
"Satisfied", "Satisfied", "Satisfied", "Satisfied"), Answer = structure(c(1L, 
2L, 3L, 4L, 5L, 6L, NA, 1L, 2L, 3L, 4L, 5L, NA, 1L, 2L, 3L, 4L, 
5L, 6L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 6L, NA, 1L, 2L, 
3L, 4L, 5L, 6L, NA), .Label = c("Completely Satisfied", "Satisfied", 
"Slightly Satisfied", "Slightly Dissatisfied", "Dissatisfied", 
"Completely Dissatisfied"), class = "factor"), Counts = c(4L, 
25L, 22L, 19L, 20L, 20L, 1L, 15L, 30L, 24L, 3L, 2L, 2L, 29L, 
39L, 17L, 15L, 7L, 4L, 32L, 33L, 7L, 3L, 1L, 8L, 36L, 33L, 16L, 
7L, 10L, 1L, 20L, 33L, 16L, 3L, 1L, 1L, 2L), Question = c("The formal training you\nreceived in EDGE", 
"The formal training you\nreceived in EDGE", "The formal training you\nreceived in EDGE", 
"The formal training you\nreceived in EDGE", "The formal training you\nreceived in EDGE", 
"The formal training you\nreceived in EDGE", "The formal training you\nreceived in EDGE", 
"The formal training you\nreceived in EDGE", "The formal training you\nreceived in EDGE", 
"The formal training you\nreceived in EDGE", "The formal training you\nreceived in EDGE", 
"The formal training you\nreceived in EDGE", "The formal training you\nreceived in EDGE", 
"The in-person,\ninstructor-led training", "The in-person,\ninstructor-led training", 
"The in-person,\ninstructor-led training", "The in-person,\ninstructor-led training", 
"The in-person,\ninstructor-led training", "The in-person,\ninstructor-led training", 
"The in-person,\ninstructor-led training", "The in-person,\ninstructor-led training", 
"The in-person,\ninstructor-led training", "The in-person,\ninstructor-led training", 
"The in-person,\ninstructor-led training", "The E-learning training\n(GU Courses)", 
"The E-learning training\n(GU Courses)", "The E-learning training\n(GU Courses)", 
"The E-learning training\n(GU Courses)", "The E-learning training\n(GU Courses)", 
"The E-learning training\n(GU Courses)", "The E-learning training\n(GU Courses)", 
"The E-learning training\n(GU Courses)", "The E-learning training\n(GU Courses)", 
"The E-learning training\n(GU Courses)", "The E-learning training\n(GU Courses)", 
"The E-learning training\n(GU Courses)", "The E-learning training\n(GU Courses)", 
"The E-learning training\n(GU Courses)"), Proportion = c(0.0213903743315508, 
0.133689839572193, 0.117647058823529, 0.101604278074866, 0.106951871657754, 
0.106951871657754, 0.0053475935828877, 0.0802139037433155, 0.160427807486631, 
0.128342245989305, 0.0160427807486631, 0.0106951871657754, 0.0106951871657754, 
0.155080213903743, 0.20855614973262, 0.0909090909090909, 0.0802139037433155, 
0.0374331550802139, 0.0213903743315508, 0.171122994652406, 0.176470588235294, 
0.0374331550802139, 0.0160427807486631, 0.0053475935828877, 0.0427807486631016, 
0.192513368983957, 0.176470588235294, 0.0855614973262032, 0.0374331550802139, 
0.053475935828877, 0.0053475935828877, 0.106951871657754, 0.176470588235294, 
0.0855614973262032, 0.0160427807486631, 0.0053475935828877, 0.0053475935828877, 
0.0106951871657754)), row.names = c(NA, -38L), class = "data.frame")
library(dplyr)
agent_q2 <- agent_q2 %>%
  group_by(Answer, Question) %>%
  mutate(prop_sum = sum(Proportion))
agent_for_plot <- agent_q2[!duplicated(agent_q2[c(3,7)]),]
ggplot(agent_for_plot, aes(x = Region, y = prop_sum, fill = 
                       Answer, label = ifelse(prop_sum > .05, scales::percent(prop_sum), 
                                              ""))) +
  geom_bar(position = "fill", stat = "identity") +
  facet_grid(vars(rows=Question)) +
  scale_y_continuous(labels = scales::percent_format()) +
  geom_text(family = "Calibri Light", size = 3, hjust = 0.5, position = position_stack(vjust = 0.5)) +
  coord_flip()