Jet*_*Lag 2 plot r ggplot2 pie-chart
我想绘制一个合适的饼图。但是,本网站之前的大部分问题均来自stat = identity. 如何绘制一个正常的饼图,比如图 2,角度与 的比例成正比cut?我正在使用diamonds来自 ggplot2的数据框。
ggplot(data = diamonds, mapping = aes(x = cut, fill = cut)) +
geom_bar(width = 1) + coord_polar(theta = "x")
Run Code Online (Sandbox Code Playgroud)
ggplot(data = diamonds, mapping = aes(x = cut, y=..prop.., fill = cut)) +
geom_bar(width = 1) + coord_polar(theta = "x")
Run Code Online (Sandbox Code Playgroud)
ggplot(data = diamonds, mapping = aes(x = cut, fill = cut)) +
geom_bar()
Run Code Online (Sandbox Code Playgroud)
我们可以先计算每组的百分比cut。我使用这个dplyr包来完成这个任务。
library(ggplot2)
library(dplyr)
# Calculate the percentage of each group
diamonds_summary <- diamonds %>%
group_by(cut) %>%
summarise(Percent = n()/nrow(.) * 100)
Run Code Online (Sandbox Code Playgroud)
之后,我们可以绘制饼图。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)
Run Code Online (Sandbox Code Playgroud)
这是结果。