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

标签 r ggplot2

这个问题在这里已经有了答案:





Order Bars in ggplot2 bar graph

(14 个回答)


4年前关闭。




这是我的简单 Assets 数据集:

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

这是代码:
 assets <- read_excel("C:/R/SampleData.xlsx")
 g <- ggplot(assets, aes(Currency, Value))
 g + geom_col()

这是我得到的情节:

bar plot

我正在尝试创建相同的图,但条形按值排序(按降序排列)
我如何实现这一目标?
我尝试了以下代码:
assets$Currency <- factor(assets$Currency, levels = assets$Currency[order(assets$Value)])

但我收到以下警告消息,并且图表仍未正确排序:
Warning message:
In `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels) else paste0(labels,  :
duplicated levels in factors are deprecated

谢谢!

最佳答案

  ggplot(assets, aes(reorder(Currency, -Value, sum), Value)) +
  geom_col()

enter image description here

关于r - 如何使用 R ggplot 按值对条形图进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43397556/

相关文章:

r - 在 geom_map 中合并北达科他州和南达科他州两个州

r - 使代码和输出逐步出现在 R 演示文稿中

r - 在 R 中保持变量不变的预测边际/预测

r - 检查英语词典中是否存在单词 r

r - 如果值等于列名,如何在 R 中的整个数据集中重新编码列中的值

r - 如何使用 ggplot2 缩放轴的时间间隔?

r - 如何在R中没有图的情况下创建图例?

r - ggplot2 中的字体大小困惑

r - 混合模型/lsmeans 结果的线图(使用 ggplot?)

r - 如何在ggplot2中创建具有大量值的点图