7

ファセット ggplot2 ドット プロットをプロットしたいと思います。x 軸は連続、y 軸は動物のリストです。2 つの変数がプロットされ、摂食行動に従ってファセット化されます。

各動物は 1 つの摂食行動カテゴリにしか表示されないため、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)

各サブプロットで動物名のリストをアルファベット順にする方法についての手がかりはありますか?

4

1 に答える 1

10

文字列ベクトルを因子に変換し、レベルの順序を指定できます。

次のコマンドは、因子を作成します。レベルはアルファベットの降順です。

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")

ここに画像の説明を入力

于 2013-01-31T16:49:38.963 に答える