将数据汇总为R中并排条形图的百分比
下面是我遇到问题的代码及其输出。数据集链接在文章的底部将数据汇总为R中并排条形图的百分比,r,ggplot2,dplyr,R,Ggplot2,Dplyr,下面是我遇到问题的代码及其输出。数据集链接在文章的底部 我想做的是将状态码与每个MSN组合在一起(与输出中现在显示的相反) 到目前为止,我相信这一切都与我如何创建条形图的百分比有关 任何援助都将是巨大的。谢谢大家! 以下是我使用的数据这是一个版本,使用data.table进行初始筛选,并更改plot函数,希望得到您想要的结果: 库(readxl) 库(数据表) 图书馆(GG2) 下载文件(“http://www.mathmodels.org/Problems/2018/MCM-C/Problem
以下是我使用的数据这是一个版本,使用
data.table
进行初始筛选,并更改plot函数,希望得到您想要的结果:
库(readxl)
库(数据表)
图书馆(GG2)
下载文件(“http://www.mathmodels.org/Problems/2018/MCM-C/ProblemCData.xlsx“,“~/ex/ProblemCData.xlsx”)
#默认情况下,因子级别将按字母顺序排列,因此我们不需要指定
EnergyData提出了一个人们可以帮助解决的R问题。这包括一个数据样本(不是它的图片),以及一个清晰的解释,说明什么东西不起作用,只是需要代码来帮助调试issueThank you@camille,我刚刚编辑了这篇文章。希望我的问题现在能更清楚一点!
plotdata <- EnergyData %>%
filter(MSN %in% c("BMTCB", "GETCB", "HYTCB", "SOTCB", "WYTCB")) %>%
filter(Year %in% c("2009")) %>%
select(StateCode, MSN, Data) %>%
group_by(StateCode) %>%
mutate(pct = Data/sum(Data),
lbl = scales::percent(pct))
plotdata
ggplot(EnergyData,
aes(x = factor(StateCode,
levels = c("AZ", "CA", "NM", "TX")),
y = pct,
fill = factor(drv,
levels = c("BMTCB", "GETCB", "HYTCB", "SOTCB", "WYTCB"),
labels = c("BMTCB", "GETCB", "HYTCB", "SOTCB", "WYTCB")))) +
geom_bar(stat = "identity",
position = "fill") +
scale_y_continuous(breaks = seq(0, 1, .2),
label = pct) +
geom_text(aes(label = lbl),
size = 3,
position = position_stack(vjust = 0.5)) +
scale_fill_brewer(palette = "Set2") +
labs(y = "Percent",
fill = "MSN",
x = "State",
title = "Renewable Resources by State") +
theme_minimal()