why is the y-scale larger than the actual values for each response?

Are you perhaps trying to plot the mean percentage in each group? Otherwise, it is not clear how a bar plot could easily represent what you are looking for. You could perhaps add error bars to give an idea of the spread of responses.

Suppose your data looks like this:

set.seed(4)

df <- data.frame(group = factor(rep(1:3, each = 200)),
                 confid = sample(40, 600, TRUE))

Using your plotting code, we get very similar results to yours:

library(ggplot2)                
plot <-ggplot(df, aes(group, confid))+
  geom_col()+ 
  ylab("confid %") + 
  xlab("group")

plot

enter image description here

However, if we use stat_summary, we can instead plot the mean and standard error for each group:

ggplot(df, aes(group, confid)) +
  stat_summary(geom = "bar", fun = mean, width = 0.6, 
               fill = "deepskyblue", color = "gray50") +
  geom_errorbar(stat = "summary", width = 0.5) +
  geom_point(stat = "summary") +
  ylab("confid %") + 
  xlab("group")

enter image description here

CLICK HERE to find out more related problems solutions.

Leave a Comment

Your email address will not be published.

Scroll to Top