我有一个值向量,我想将其显示为饼图.矢量由1,2和3组成,我希望我的饼图显示矢量中1,2和3的百分比以及区域的标签.1是民主党人,2人是共和党人,3人是独立党人.我一直在使用的向量是数据帧的列.虽然我使用as.numeric()和as.factor()传递了它,但可能存在一些类型问题.
这是df的一个例子(注意,正如你在代码中看到的那样,我在第7章中有所讨论):
Q6 Q7 Q8 Q9
3 30 3 5 1
4 30 3 5 1
5 65 3 2 2
6 29 3 5 1
7 23 1 4 1
8 24 1 5 1
Run Code Online (Sandbox Code Playgroud)
这是我一直在尝试的代码:
install.packages('ggplot2')
library(ggplot2)
# pie graph for party
pie <- ggplot(data=data, aes(x = as.factor(data$Q7), fill = factor(cyl)))
pie + coord_polar(theta = "y")
Run Code Online (Sandbox Code Playgroud)
它返回一个错误:'没有图中的图层'
谢谢您的帮助!
zer*_*323 27
ggplot中的极坐标图基本上是变换堆积条形图,因此您需要geom_bar
使其工作.我们将使用单个组(x = factor(1)
)将所有值组合在一起并fill
在感兴趣的列上划分区域.此时,您将获得一个带有单个条形图的条形图.
bar <- ggplot(data, aes(x = factor(1), fill = factor(Q7))) + geom_bar(width = 1)
bar
Run Code Online (Sandbox Code Playgroud)
剩下的就是添加coord_polar
:
pie <- bar + coord_polar(theta = "y")
pie
Run Code Online (Sandbox Code Playgroud)
您可以添加theme_void()
到拖放轴和标签:
pie + coord_polar(theta = "y") + theme_void()
Run Code Online (Sandbox Code Playgroud)