gpt4 book ai didi

r - 如何使用ggplot2生成饼图?

转载 作者:行者123 更新时间:2023-12-03 13:27:57 26 4
gpt4 key购买 nike

我有一个值向量,希望将其显示为饼图。向量由1、2和3组成,我希望饼图除了显示区域标签外,还显示向量中1、2和3的百分比。 1代表民主党,2代表共和党和3代表独立。我一直在使用的向量是数据帧的一列。尽管我已经使用as.numeric()和as.factor()传递了它,但可能存在一些类型问题。

这是df的示例(请注意,如您在代码中所见,我对col Q7感兴趣):

  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


这是我一直在尝试的代码:

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")


返回错误:“图中没有图层”

谢谢您的帮助!

最佳答案

ggplot中的极坐标图基本上是转换后的堆叠条形图,因此您需要geom_bar使其起作用。我们将使用单个组(x = factor(1))将所有值放在一起,并在感兴趣的列上使用fill来划分区域。此时,您将获得带有单个条形图的条形图。

bar <- ggplot(data, aes(x = factor(1), fill = factor(Q7))) + geom_bar(width = 1)
bar


enter image description here

剩下的就是添加 coord_polar

pie <- bar + coord_polar(theta = "y")
pie


enter image description here

您可以将 theme_void()添加到放置轴和标签:

pie + coord_polar(theta = "y") + theme_void()


enter image description here

关于r - 如何使用ggplot2生成饼图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20442693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com