我是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)
答案 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")
唯一的问题是文本位于难以阅读的位置。我会继续努力。