GGPLOT2:在无尺度倒车为每个小面的离散字符变量的顺序?(ggplot2:Reversing t

2019-08-16 16:15发布

我想绘制方位GGPLOT2点图。 x轴是连续的,y轴是动物的列表。 两个变量是根据饮食行为绘制和面状。

y轴是一个无尺度,因为每个动物只出现在一个饮食行为类别。

library(ggplot2)

# First clean up the data set:
msleep.noNA <- msleep[!is.na(msleep$vore),]
msleep.noNA.red <-  msleep.noNA[c(1,3,6,7)]
msleep.noNA.red <- msleep.noNA.red[!is.na(msleep.noNA.red[4]),]
msleep.noNA.red <- melt(msleep.noNA.red)

pg <- ggplot(msleep.noNA.red, aes(value, name, colour = variable)) +
      geom_point() +
      facet_grid(vore ~ ., scale="free_y", space = "free_y")
pg

# Try to reverse order of the y axis:
pg + scale_y_reverse()

# Not possible because its a factor, but it's not classified as such:
class(msleep.noNA.red$name)

是否有人有一些线索,我怎样才能使动物的名称列表中的每个子情节拼音?

Answer 1:

您可以将字符串向量的一个因素,并指定级别的顺序:

以下命令将创建一个因素。 该水平是在降低按字母顺序排列:

msleep.noNA.red <- within(msleep.noNA.red,
                         name <- ordered(name, levels = rev(sort(unique(name)))))

现在,您可以绘制数据:

pg <- ggplot(msleep.noNA.red, aes(value, name, colour = variable)) +
  geom_point() +
  facet_grid(vore ~ ., scale="free_y", space = "free_y")



文章来源: ggplot2:Reversing the order of a discrete character variable for each facet on a free scale?
标签: r ggplot2