1

Already seen here and here but still getting error. I am trying to label my bars with ratios by customer type:

Here is the dput()output:

    structure(list(word = c("broadband", "broadband", "broadband", 
"call", "call", "call", "cheaper", "cheaper", "cheaper", "customer", 
"customer", "customer", "internet", "internet", "internet", "line", 
"line", "line", "price", "price", "price", "reliable", "reliable", 
"reliable", "service", "service", "service", "speed", "speed", 
"speed"), word_cust_props = c(0.395536562203229, 0.36372269705603, 
0.240740740740741, 0.486218302094818, 0.383682469680265, 0.130099228224917, 
0.361738148984199, 0.535553047404063, 0.102708803611738, 0.45317483328501, 
0.327051319222963, 0.219773847492027, 0.386215864759428, 0.360208062418726, 
0.253576072821847, 0.403946002076843, 0.407061266874351, 0.188992731048806, 
0.367229608336328, 0.435501257635645, 0.197269134028027, 0.178432893716059, 
0.245151280062064, 0.576415826221877, 0.315767973856209, 0.251429738562091, 
0.432802287581699, 0.383040935672515, 0.333333333333333, 0.283625730994152
), NPS_Level = c("Detractor", "Passive", "Promoter", "Detractor", 
"Passive", "Promoter", "Detractor", "Passive", "Promoter", "Detractor", 
"Passive", "Promoter", "Detractor", "Passive", "Promoter", "Detractor", 
"Passive", "Promoter", "Detractor", "Passive", "Promoter", "Detractor", 
"Passive", "Promoter", "Detractor", "Passive", "Promoter", "Detractor", 
"Passive", "Promoter")), class = c("grouped_df", "tbl_df", "tbl", 
"data.frame"), row.names = c(NA, -30L), vars = list(word, NPS_Level), drop = TRUE, .Names = c("word", 
"word_cust_props", "NPS_Level"), indices = list(0L, 1L, 2L, 3L, 
    4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 
    17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 
    29L), group_sizes = 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), biggest_group_size = 1L, labels = structure(list(
    word = c("broadband", "broadband", "broadband", "call", "call", 
    "call", "cheaper", "cheaper", "cheaper", "customer", "customer", 
    "customer", "internet", "internet", "internet", "line", "line", 
    "line", "price", "price", "price", "reliable", "reliable", 
    "reliable", "service", "service", "service", "speed", "speed", 
    "speed"), NPS_Level = c("Detractor", "Passive", "Promoter", 
    "Detractor", "Passive", "Promoter", "Detractor", "Passive", 
    "Promoter", "Detractor", "Passive", "Promoter", "Detractor", 
    "Passive", "Promoter", "Detractor", "Passive", "Promoter", 
    "Detractor", "Passive", "Promoter", "Detractor", "Passive", 
    "Promoter", "Detractor", "Passive", "Promoter", "Detractor", 
    "Passive", "Promoter")), class = "data.frame", row.names = c(NA, 
-30L), vars = list(word, NPS_Level), drop = TRUE, .Names = c("word", 
"NPS_Level")))

This is what I have tried:

    words_without_sw%>%

  mutate(position = cumsum(word_cust_props) - 0.5*word_cust_props)%>%
  ggplot(aes(word, word_cust_props,fill=NPS_Level)) +
  geom_bar(stat="identity") +
  coord_flip() +
  geom_text(aes(label = sprintf("%1.2f%%", 100*word_cust_props), y = position),colour = "white")+
  theme(plot.background = element_rect(fill = 'white'),
        legend.position = "top",
        axis.text.y=element_text(size=14, color="#6400aa",face = "bold"),
        axis.text.x=element_text(size=12,color="#6400aa",face = "bold"),
        plot.title = element_text(color="#6300aa", face="bold", size=20, hjust=0),
        strip.text.x = element_text(size = 17, face = "bold",colour = "blue"),
        legend.text=element_text(size=17,face = "bold"),
        legend.title = element_text(size=17,face = "bold")) +
  labs(x = "",
       y = "word proportions by customer type",
       title = "Top 10 words by customer type",
       subtitle = "Calc. by taking the word count and proportions by customer type",
       fill="")+
  scale_fill_manual(labels = c("Detractor","Passive","Promoter"), values = c("#E60014", "#333333","#14AA37"))

But the labels are still jumbled together. Like this:enter image description here

Not sure what I am doing wrong ???

5
  • Try replacing your geom_text term with geom_text(aes(label = sprintf("%1.2f%%", 100*word_cust_props)),colour = "white", position = position_stack(hjust = 0.5)) Commented Jun 26, 2017 at 13:14
  • @AndrewGustar Error in position_stack(hjust = 0.5) : unused argument (hjust = 0.5) Commented Jun 26, 2017 at 13:24
  • Try it with vjust instead of hjust Commented Jun 26, 2017 at 13:25
  • Better but still not in place. Commented Jun 26, 2017 at 13:26
  • I have answered my own question Commented Jun 26, 2017 at 13:26

1 Answer 1

1
    words_without_sw%>%
 ggplot(aes(word, word_cust_props,fill=NPS_Level,label = sprintf("%1.2f%%", 100*word_cust_props))) +
  geom_bar(stat="identity") +
  coord_flip() +
  geom_text(size = 3, position = position_stack(vjust = 0.5),colour = "white")+
  theme(plot.background = element_rect(fill = 'white'),
        legend.position = "top",
        axis.title.y = element_blank(),
        axis.title.x = element_text(color="#6300aa", face="bold", size=14),
        axis.text.y=element_text(size=14, color="#6400aa",face = "bold"),
        axis.text.x=element_blank(),
        plot.title = element_text(color="#6300aa", face="bold", size=20, hjust=0),
        strip.text.x = element_text(size = 17, face = "bold",colour = "blue"),
        legend.text=element_text(size=17,face = "bold"),
        legend.title = element_text(size=17,face = "bold")) +
  labs(x = "",
       y = "",
       title = "Top 10 words by customer type",
       subtitle = "Calc. by taking the word count and proportions by customer type",
       fill="")+
  scale_fill_manual(labels = c("Detractor","Passive","Promoter"), values = c("#E60014", "#333333","#14AA37"))
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.