R语言 使用geom_col对条形图中的行重新排序

piwo6bdm  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(229)

我有以下简单的代码,用于在ggplot2中使用geom_col命令生成条形图:

plt <- ggplot(data) +
        geom_col(aes(Participations,Country), fill = BLUE, width = 0.6)

我的数据是一个简单的数据框,包含两个变量CountriesParticipations,其中每个国家对应一个数字。我得到的结果是根据国家的字母顺序对行进行排序。我如何修改它以根据每个国家的参与人数对条形图进行重新排序?
我试过使用reorder()函数,但我不确定语法是否正确。

nfs0ujit

nfs0ujit1#

reorder的正确语法(在ggplot2的上下文中)是(aes(x = reorder(x, -y), y = y)(aes(x = reorder(x, y), y = y),这取决于您希望从y还是最小值开始。
此外,请确保fill = "blue",除非BLUE是另一个对应于真实的颜色的指定矢量。

library(tidyverse)
set.seed(123)

Country <- c("USA", "UK", "ESP", "FR", "ITA", "BRA", "JAP", "CHN", "ZAF", "DEU")
Participations <- sample(1:10, size = 10, replace = TRUE)
data <- data.frame(Country, Participations)

ggplot(data) + 
  geom_col(aes(x = reorder(Country, -Participations),
               y = Participations), fill = "blue", width = 0.6) +
  xlab("Country")

相关问题