条形图与百分比和图形标签使用ggplot2

时间:2017-02-21 00:01:05

标签: r graph ggplot2

我是R的新手并尝试为不同的分类变量组(度)创建一个百分比的条形图。以下是我目前使用的代码:

 graph_data <- gss %>% 
            group_by(degree, owngun) %>%
            summarise(total = n()) %>%
            ungroup() %>%
            mutate(percent = total/57061)     

       ggplot(graph_data, aes(x=degree, fill=owngun, y=percent) +
            geom_bar(stat="identity") +
            geom_text(size = 3, position = position_stack(vjust = 0.5))

第一部分有效,我可以用枪手的百分比创建一个新变量。但是,当我运行第二部分来绘制变量图时,我收到以下错误消息:

 > ggplot(aes(x=degree, fill=owngun, y=percent) +
        +   geom_bar(stat="identity")
        + ggplot(graph_data, aes(x=degree, fill=owngun, y=percent) +
        Error: unexpected symbol in:
       "  geom_bar(stat="identity")
        ggplot"
       >   geom_bar(stat="identity") +
        +   geom_text(size = 3, position = position_stack(vjust = 0.5))
       Error in position_stack(vjust = 0.5) : unused argument (vjust = 0.5) 

2 个答案:

答案 0 :(得分:1)

第二部分您的语法错误。我已经尽力纠正它,但根据数据集的定义方式,这可能会或可能不会完全解决问题

ggplot(graph_data, aes(x=degree, y=percent, fill=owngun)) + geom_bar(stat="identity") + geom_text(size = 3, position = position_stack(vjust = 0.5))

为了扩展错误,您定义了ggplot()两次。你应该只需要这样做一次。 ggplot()定义了&#34;全球&#34;图表的参数。您还重复geom_bar()两次,我不知道是否会引发错误,但您当然只需要一个实例。你的括号在两个ggplot()行周围都是错误的,你错过了第二个&#34;)&#34;这两个时间本身都会导致图形不起作用。

答案 1 :(得分:0)

谢谢,

我使用您的建议进行了一些调整,并且能够使用以下代码使代码生效:

ggplot(graph_data, aes(x=degree, y=percent, fill=owngun, label=percent)) +
        geom_bar(stat="identity") +
        geom_text(size = 3, position="stack")

唯一的问题是文本位于难以阅读的位置。我会继续努力。