ggplot2 按第 80 个百分位数重新排序我的箱线图
ggplot2 reorder my boxplot by 80th percentile
我想按照第 80 个百分位值的顺序重新排列我的箱线图。
我的剧情是这样的:
我的代码结构是这样的:
ggplot(data, aes(x=reorder(y, x, median), y)) +
geom_boxplot(fill="deepskyblue") +
stat_boxplot(geom ='errorbar', width=0.3) +
theme_bw()+
scale_y_continuous(trans="log10", n.breaks = 6)
目前我按中位数排序。我有两个问题:
看起来它按中位数对箱线图进行排序,直到大约 1/3 的图,然后返回到随机排序。为什么会这样?
如何轻松按第 80 个百分位排序?我尝试在 quantile(0.8, y)
中替换 median
但出现错误。
很遗憾,我不能分享数据 structure/variables 因为它是机密的。
谢谢。
可能是NA
导致图表不整齐的问题,之前过滤一下试试:
data <- data %>% filter(!is.na(y))
尝试 FUN = quantile, prob = 0.80
,在 reorder
函数中你将得到:
ggplot(data, aes(x=reorder(y, x, FUN = quantile, prob=0.80), y)) +
geom_boxplot(fill="deepskyblue") +
stat_boxplot(geom ='errorbar', width=0.3) +
theme_bw()+
scale_y_continuous(trans="log10", n.breaks = 6)
我想按照第 80 个百分位值的顺序重新排列我的箱线图。
我的剧情是这样的:
我的代码结构是这样的:
ggplot(data, aes(x=reorder(y, x, median), y)) +
geom_boxplot(fill="deepskyblue") +
stat_boxplot(geom ='errorbar', width=0.3) +
theme_bw()+
scale_y_continuous(trans="log10", n.breaks = 6)
目前我按中位数排序。我有两个问题:
看起来它按中位数对箱线图进行排序,直到大约 1/3 的图,然后返回到随机排序。为什么会这样?
如何轻松按第 80 个百分位排序?我尝试在
quantile(0.8, y)
中替换median
但出现错误。
很遗憾,我不能分享数据 structure/variables 因为它是机密的。
谢谢。
可能是
NA
导致图表不整齐的问题,之前过滤一下试试:data <- data %>% filter(!is.na(y))
尝试
FUN = quantile, prob = 0.80
,在reorder
函数中你将得到:ggplot(data, aes(x=reorder(y, x, FUN = quantile, prob=0.80), y)) + geom_boxplot(fill="deepskyblue") + stat_boxplot(geom ='errorbar', width=0.3) + theme_bw()+ scale_y_continuous(trans="log10", n.breaks = 6)