gpt4 book ai didi

r - 控制 ggplot2 geom_bar 的填充顺序和组

转载 作者:行者123 更新时间:2023-12-02 01:57:42 25 4
gpt4 key购买 nike

library(ggplot2)


data <-
data.frame(
group=factor(c("a","c","b","b","c","a")),
x=c("A","B","C", "D","E","F"),
y=c(3,2,10,11,4,5))

> data
group x y
1 a A 3
2 c B 2
3 b C 10
4 b D 11
5 c E 4
6 a F 5

#And plot this:
ggplot(data)+
geom_bar(aes(x=x, y=y, fill=group, order=group),
stat="identity",
position="dodge")+
coord_flip()

这给出了一个图,其中 x 根据因子水平绘制: enter image description here

但是如何根据 group 的自定义顺序对 x 重新排序?变量,同时排列在group内按降序y 。例如,如果我想先绘制“c”(红色),然后绘制“a”(绿色),然后绘制“b”(蓝色)组,则 x 轴(x 变量)的绘制顺序将是:E 、B、F、A、D、C。请注意,这可能与 this 类似。所以问题。

最佳答案

您首先需要在没有因素的情况下格式化数据帧。然后,您需要将 x 列定义为因子,但顺序取决于每个y最小值。您需要在 levels 参数中指定您想要的特定顺序。

我们开始:

data <- 
data.frame(
group=c("a","c","b","b","c","a"),
x=c("A","B","C", "D","E","F"),
y=c(3,2,10,11,4,5))

data$x = with(data, factor(x, levels=x[order(ave(y, group, FUN=min),y)]))

ggplot(data, aes(x, y, fill=group)) +
geom_bar(stat='identity', position='dodge') +
coord_flip()

enter image description here

关于r - 控制 ggplot2 geom_bar 的填充顺序和组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29208873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com