【发布时间】:2020-01-26 21:03:27
【问题描述】:
我希望能够在 R 中使用 ggplot2 制作“饼图”,但要计算某个数据出现的次数。
在我的示例中,我有一个 Excel,我从中提取一列以及列中出现的值,例如名为“纪律”的列具有以下值:
discipline1, discipline2, discipline3, discipline1, discipline1, discipline2,
discipline2, discipline2, discipline2, discipline2, discipline3, discipline3.
所以我要绘制的是每个值出现的百分比:
discipline1, discipline2, discipline3
使用饼图。
对于条形图,我使用了值stat="count",但我在饼图中看到我不能。
例如,我尝试过这样的事情:
ggplot(df, aes(x = "", y = as.factor(df[,discipline]),
fill = as.factor(df[,discipline]))) +
geom_bar(width = 1, stat = "identity", color = "white") +
coord_polar("y", start = 0)+
geom_text(aes(y = as.factor(df[,discipline]),
label = as.factor(df[,discipline])), color = "white")+
scale_fill_manual(values =c("#0073C2FF", "#EFC000FF", "#868686FF"))+
theme_void()
【问题讨论】:
-
欢迎来到 Stack Overflow!您应该提供reproducible example。详细阅读链接,以便您可以提供数据集的示例以及到目前为止的内容(我猜您在
ggplot中有一个饼图代码不起作用,您应该分享它)。干杯。 -
遵循 @M-- 的好建议...如果我是你,我会将你的数据子集保存为
csv文件(或类似格式的测试数据集),然后粘贴在您的主要问题的代码块中,以便其他人可以从中构建答案。话虽如此,当使用stat = "identity"时,您只需事先手动计算计数。在我的脑海中......我相信df.count = as.data.frame(table(df))中使用的table函数可能会为您提供所需的格式。这只是一个快速的猜测...... -
感谢您的edit。它帮助我更好地理解你的问题。我们通常需要一个与名为
dput的函数共享的示例数据集(我分享的上一个链接,谈到了它)。但是在这里我能够将您的文本复制为数据。请看下面我的回答,希望对您有所帮助。我将在关于您的数据的回答下方添加评论。
标签: r ggplot2 plot pie-chart geom-text