我用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这样的自定义顺序.

我该怎么做?

推荐答案

如果您提供的分组变量是not a因子,则不要依赖默认的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))

现在,我们可以使用它来按照we的顺序绘制面板:

require(ggplot2)
p <- ggplot(dat, aes(x = x)) + geom_bar()
p + facet_wrap( ~ Group)

它产生:

镶嵌面包裹

R相关问答推荐

替换字符的所有实例,但仅限于匹配字符串中

geom_raster不适用于x比例中超过2,15的值

使用lapply的重新定位功能

如何创建构成多个独立列条目列表的收件箱框列?

在特定列上滞后n行,同时扩展框架的长度

变量计算按R中的行更改

R等效于LABpascal(n,1)不同的列符号

R箱形图gplot 2 4组但6个参数

带有叠加饼图系列的Highmap

然后根据不同的列值有条件地执行函数

将包含卷的底部25%的组拆分为2行

对于变量的每个值,仅 Select 包含列表中所有值的值.R

具有重复元素的维恩图

调换行/列并将第一行(原始数据帧的第一列)提升为标题的Tidyr类似功能?

提高圣彼得堡模拟的速度

如何删除R中除数字元素以外的所有元素

如果条件匹配,则使用Mariate粘贴列名

基于R中的辅助向量中的值有条件地连接向量中的字符串

将数据从一列转换为按组累计计数的单个虚拟变量

如何使投篮在R中保持一致