gpt4 book ai didi

r - 在 ggplot2 中绘制饼图

转载 作者:行者123 更新时间:2023-12-05 08:55:05 24 4
gpt4 key购买 nike

我想绘制一个合适的饼图。然而,本网站之前的大部分问题都来自 stat = identity。我如何绘制一个像图 2 一样的普通饼图,其角度与 cut 的比例成正比?我正在使用来自 ggplot2 的 diamonds 数据框。

ggplot(data = diamonds, mapping = aes(x = cut, fill = cut)) + 
geom_bar(width = 1) + coord_polar(theta = "x")

图1 enter image description here

ggplot(data = diamonds, mapping = aes(x = cut, y=..prop.., fill = cut)) + 
geom_bar(width = 1) + coord_polar(theta = "x")

图2 enter image description here

ggplot(data = diamonds, mapping = aes(x = cut, fill = cut)) + 
geom_bar()

图3 enter image description here

最佳答案

我们可以先计算出每个cut组的百分比。我为此任务使用了 dplyr 包。

library(ggplot2)
library(dplyr)

# Calculate the percentage of each group
diamonds_summary <- diamonds %>%
group_by(cut) %>%
summarise(Percent = n()/nrow(.) * 100)

之后,我们就可以绘制饼图了。 scale_y_continuous(breaks = round(cumsum(rev(diamonds_summary$Percent)), 1))是根据累计百分比设置坐标轴标签。

ggplot(data = diamonds_summary, mapping = aes(x = "", y = Percent, fill = cut)) + 
geom_bar(width = 1, stat = "identity") +
scale_y_continuous(breaks = round(cumsum(rev(diamonds_summary$Percent)), 1)) +
coord_polar("y", start = 0)

这是结果。

enter image description here

关于r - 在 ggplot2 中绘制饼图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47238098/

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