R 如何根据管道中的汇总值对几何图形列进行排序
我试图理解其他结果,但我无法理解。 这是我的数据集:R 如何根据管道中的汇总值对几何图形列进行排序,r,ggplot2,R,Ggplot2,我试图理解其他结果,但我无法理解。 这是我的数据集: > HIST # A tibble: 1,071 x 16 Ano Leilao Fonte UF Vend Projeto <dbl> <chr> <chr> <chr> <chr> <chr>
> HIST
# A tibble: 1,071 x 16
Ano Leilao Fonte UF Vend Projeto
<dbl> <chr> <chr> <chr> <chr> <chr>
1 2008 2008 Leilao 1 Bio SP Abengoa UTE São Luiz (Abengoa São Luiz)
2 2013 2013 A-5 1 Bio MS AMANDINA Amandina
3 2017 2017 A-6 Bio MG BEVAP BIOENERGETICA AROEIRA 2
4 2015 2015 A-5 1 Bio BA Bolt BOLTBAH
5 2013 2013 A-5 1 Bio BA Bolt CAMPO GRANDE
6 2013 2013 A-5 1 Bio PI Bolt CANTO DO BURITI
7 2010 2010 LER Bio TO Bunge PEDRO AFONSO
8 2015 2015 LFA Bio SP Clealco CLEALCO QUEIROZ
9 2015 2015 A-3 Bio SP Clealco CLEALCO QUEIROZ
10 2008 2008 Leilao 1 Bio MG CMAA UTE Vale do Tijuco
# ... with 1,061 more rows, and 10 more variables: CODPPA <dttm>, CAPEX <dbl>,
# MW <dbl>, GF <dbl>, FC <dbl>, PPA <dbl>, RMW <dbl>, WACC <dbl>, TIR <dbl>,
# VPL <dbl>
但问题是,我得到了下面的图表,不是按MW的总和排序的。我希望此图表的列按列的高度排序:
谢谢你,保罗,你可以先计算每个酒吧的高度,并指定适当的顺序作为因素。否则,ggplot将在x轴上按分类顺序绘制UF的值
# create summary data frame from HIST
df <- HIST %>%
group_by(Fonte, UF) %>%
summarise(SUMMW = sum(MW))
# calculate total bar height for each UF value, & sort accordingly.
df2 <- df %>%
group_by(UF) %>%
summarise(bar.heights = sum(SUMMW)) %>%
ungroup() %>%
arrange(desc(bar.heights))
# convert UF in the summary data frame to factor, with levels in the sorted order
df$UF <- factor(df$UF, levels = df2$UF)
rm(df2) # you can remove df2 after this; it's not needed anymore
# plot
ggplot(df,
aes(x = UF, y = SUMMW, fill = Fonte))+
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
geom_col()
#从HIST创建摘要数据框
df%
分组人(方特,佛罗里达州)%>%
总结(总结W=总结(MW))
#计算每个UF值的总条高,并相应排序。
df2%
分组依据(UF)%>%
汇总(条形高度=总和(总和))%>%
解组()%>%
排列(描述(条形高度))
#将摘要数据框中的UF转换为因子,级别按排序顺序
df$UF您可以先计算每个杆的高度,并将UF的适当顺序指定为一个系数。否则,ggplot将在x轴上按分类顺序绘制UF的值
# create summary data frame from HIST
df <- HIST %>%
group_by(Fonte, UF) %>%
summarise(SUMMW = sum(MW))
# calculate total bar height for each UF value, & sort accordingly.
df2 <- df %>%
group_by(UF) %>%
summarise(bar.heights = sum(SUMMW)) %>%
ungroup() %>%
arrange(desc(bar.heights))
# convert UF in the summary data frame to factor, with levels in the sorted order
df$UF <- factor(df$UF, levels = df2$UF)
rm(df2) # you can remove df2 after this; it's not needed anymore
# plot
ggplot(df,
aes(x = UF, y = SUMMW, fill = Fonte))+
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
geom_col()
#从HIST创建摘要数据框
df%
分组人(方特,佛罗里达州)%>%
总结(总结W=总结(MW))
#计算每个UF值的总条高,并相应排序。
df2%
分组依据(UF)%>%
汇总(条形高度=总和(总和))%>%
解组()%>%
排列(描述(条形高度))
#将摘要数据框中的UF转换为因子,级别按排序顺序
df$UF我认为最简单的方法是在aestetics函数aes
中使用reorder(UF,desc(SUMMW))对变量进行重新排序:
我认为最简单的方法是在aestetics函数aes
中使用reorder(UF,desc(SUMMW))
对变量SUMMW
进行重新排序:
非常感谢。但是,为什么要解组df2?我可以把df2分组吗?解组的效果是什么?谢谢你!但是,为什么要解组df2?我可以把df2分组吗?解组的效果是什么?谢谢
HIST %>%
group_by(Fonte, UF)%>%
summarise(SUMMW = sum(MW))%>%
arrange(desc(SUMMW))%>%
ggplot(aes(x = reorder(UF, desc(SUMMW)), y = SUMMW, fill = Fonte))+
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
geom_col()