如何为数值制作漂亮有序的构面标签?

时间:2012-07-01 14:06:20

标签: r facets ggplot2

我经常根据数字变量进行研究,但我希望facet标签比简单数字更具解释性。我通常创建一个新的标签变量,其数字值粘贴到解释性文本。但是,当值在小数点前有多个位置时,第一个数字用于对因子进行排序。有什么建议可以避免这种情况吗?

iris[,1:4]<-iris[,1:4]*10

如果虹膜在小数点之前没有多于一个值,这对虹膜可以正常工作。

iris$Petal.Width.label<-paste("Petal.Width=", iris$Petal.Width)



iris$Petal.Width.label<-paste("Petal.Width=", iris$Petal.Width)


qplot(data=iris,
      x=Sepal.Length,
      y=Sepal.Width,
      colour=Species)+facet_wrap(~Petal.Width.label)

Plot with miss ordered facets

相关:
ggplot: How to change facet labels?
How to change the order of facet labels in ggplot (custom facet wrap labels)

1 个答案:

答案 0 :(得分:5)

只需重新排列标签的级别:

data(iris)
iris[ , 1:4] <- iris[ , 1:4] * 10
iris$Petal.Width.label <- paste("Petal.Width=", iris$Petal.Width)
# reoder levels by Petal.Width
iris$Petal.Width.label2 <- factor(iris$Petal.Width.label, 
                                  levels = unique(iris$Petal.Width.label[order(iris$Petal.Width)]))
qplot(data = iris,
      x = Sepal.Length,
      y = Sepal.Width,
      colour = Species)+
        facet_wrap( ~Petal.Width.label2)

enter image description here