如何使用 R ggplot 按值对条形图进行排序?

F. *_* F. 7 r ggplot2

这是我的简单资产数据集:

ID  Type    Currency    Value
a   Bond    GBP         10
b   Bond    EUR         20
c   Stock   GBP         3
d   Stock   GBP         60
e   Bond    GBP         8
f   Bond    USD         39
g   Stock   USD         1
Run Code Online (Sandbox Code Playgroud)

这是代码:

 assets <- read_excel("C:/R/SampleData.xlsx")
 g <- ggplot(assets, aes(Currency, Value))
 g + geom_col()
Run Code Online (Sandbox Code Playgroud)

这是我得到的情节:

条形图

我正在尝试创建相同的图,但条形按值排序(按降序)我该如何实现?我尝试了以下代码:

assets$Currency <- factor(assets$Currency, levels = assets$Currency[order(assets$Value)])
Run Code Online (Sandbox Code Playgroud)

但我收到以下警告消息,并且图表仍未正确排序:

Warning message:
In `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels) else paste0(labels,  :
duplicated levels in factors are deprecated
Run Code Online (Sandbox Code Playgroud)

谢谢!

yee*_*dle 9

  ggplot(assets, aes(reorder(Currency, -Value, sum), Value)) +
  geom_col()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明