r - 使用 geom_bar(stat="identity") 时对值进行排序
问题描述
问题
我正在使用ggplot2
,我目前遇到以下问题。我有以下数据集,可以复制。
library(tidyverse)
TestDF = data.frame(Effect1 = rnorm(100, 10, 1), Effect2 = rnorm(100, 5, 1)) %>%
arrange(Effect1) %>% mutate(IDs = 1:100) %>%
melt(measure.vars = 1:2 , variable.name = "Effects")
由于我希望x
根据 的值对其进行排序Effect1
,因此我已将其放入arrange(Effect1)
数据框。然后我使用以下代码绘制:
ggplot(TestDF, aes(IDs, y=value, fill=Effects)) +
geom_bar(stat="identity", alpha = .7)
而我遇到的问题:情节具有增加值的“一般”趋势Effect1
(正如我们从左到右看到的那样),但从未完全根据 的值排序Effect1
。
我试过的
我努力了
TestDF$IDs = factor(TestDF$IDs, levels=1:100)
但它从来没有解决我的问题。任何其他解决方案(或绕过)?
解决方案
看起来 barplot 正在做你想做的事,但效果的顺序使它看起来不对。如果 Effect1 低于 Effect2,则绘图看起来正确。
library(tidyverse)
library(reshape2)
TestDF = data.frame(Effect1 = rnorm(100, 10, 1), Effect2 = rnorm(100, 5, 1)) %>%
arrange(Effect1) %>% mutate(IDs = 1:100) %>%
melt(measure.vars = 1:2 , variable.name = "Effects") %>%
mutate(Effects = factor(Effects, levels = c('Effect2', 'Effect1')))
ggplot(TestDF, aes(IDs, y=value, fill=Effects)) +
geom_bar(stat="identity", alpha = .7)
推荐阅读
- amibroker - 在此 python 代码中出现语法错误,如何消除?
- variables - 使用媒体查询和 scss 时如何更改变量值
- pygame - pygame 重新初始化后没有收到滚动事件
- android - 如何从firebase获取pdf文件?
- haskell - 如何获取 PKCS#7 结构中的证书指纹列表?
- kotlin - 在 Android 应用程序中将从改造 (MutableLiveData) 获取的数据与来自 Room DB (LiveData) 的数据同步
- kubernetes - 无法申请!使用 JSONPath 查询的 not 运算符来获取没有污点的节点
- domain-driven-design - 领域驱动设计:跨领域
- c# - 任务无法正常启动
- flutter - Flutter webview包内联媒体问题