gpt4 book ai didi

r - 如何更改 ggplot 中的 facet 标签的顺序(自定义 facet wrap 标签)

转载 作者:行者123 更新时间:2023-12-03 07:50:15 25 4
gpt4 key购买 nike

我使用 ggplot 绘制了一个分面图这是情节

http://i.stack.imgur.com/5qXF1.png

我的问题是,刻面(标签)按字母顺序排序(例如:E1、E10、E11、E13、E2、E3、I1、I10、I2)但我需要它们是像 E1、I1、E2 这样的自定义订单、I2、E3、E10、I10、E11、E13。

我怎样才能做到这一点 ?

最佳答案

不要依赖 factor() 强加的默认级别顺序或内部通过 ggplot如果您提供的分组变量是 不是 一个因素。自己明确设置级别。

dat <- data.frame(x = runif(100), y = runif(100), 
Group = gl(5, 20, labels = LETTERS[1:5]))
head(dat)
with(dat, levels(Group))

如果我希望它们按这种任意顺序排列怎么办?
set.seed(1)
with(dat, sample(levels(Group)))

为此,请按照您希望的方式设置级别。
set.seed(1) # reset the seed so I get the random order form above
dat <- within(dat, Group <- factor(Group, levels = sample(levels(Group))))
with(dat, levels(Group))

现在我们可以使用它来按照我们想要的顺序绘制面板:
require(ggplot2)
p <- ggplot(dat, aes(x = x)) + geom_bar()
p + facet_wrap( ~ Group)

其中产生:

facets wrapped

关于r - 如何更改 ggplot 中的 facet 标签的顺序(自定义 facet wrap 标签),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5490638/

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