1

最初のおもちゃのデータ:

df = read.table(text = 
              "id      year    value sex  
1           2000    0   1
1           2001    1   0
1           2002    0   1
1           2003    0   0
2           2000    0   0
2           2002    0   0
2           2003    1   0
3           2002    0  1  
4           2000    0   0
4           2001    0   1
4           2002    1   0
4           2003    0   1 ", sep = "", header = TRUE)
  • sex==1 の ID で年を視覚化したい場合は、

    df2 <- df[df$sex==1,]
    p <- ggplot(df2, aes(y=id))
    p <- p + geom_point(aes(x=year))
    p
    

    残りの各ID間の距離が同じになるように、観測2をグラフから非表示にするにはどうすればよいですか? ブレークが id の場合、y 軸上の 2 つの目盛り間の距離を調整する一般的な方法はありますか?

  • ファセットを使用する場合にも解決策は機能しますか?

    p <- ggplot(df, aes(y=id))
    p <- p + geom_point(aes(x=year))
    p <- p + facet_grid(sex ~.)
    
4

1 に答える 1

0

OPの明確化に基づいて編集

個々のプロットを作成し、gridExtraパッケージを使用します。

これがあなたが探しているものかどうかはわかりませんが、 を使用するとreorder()役立つはずです。テストするために、おもちゃのデータフレームで 4 の「id」値を 7 に変更しました。

個々のプロットでレベルを下げるには、2 つのプロットを作成し、それらを並べて配置します。

    df2 <- df[df$sex==1,]
p1 <- ggplot(df2, aes(y=(reorder(id, id))))
p1 <- p1 + geom_point(aes(x=year))
p1


df3 <- df[df$sex==0,]
p2 <- ggplot(df3, aes(y=(reorder(id, id))))
p2 <- p2 + geom_point(aes(x=year))

気がつけば、データのない ID は削除されています。たとえば、次の例には id=2 がありません。 ここに画像の説明を入力

これで、この目的のための gridExtra パッケージを使用して、プロット p1 と p2 の両方を印刷できます。

require(gridExtra)
grid.arrange(p1, p2, ncol=2)

ここに画像の説明を入力

facet_grid() には、設計によりすべてのレベルが含まれます

facet_grid を直接使用しても機能しませんが、これは仕様によるものです。Facet_grip にはdrop=TRUEデフォルトで があります。id's=5 または 6 が表示されていないことに注意してください。id が 1 つのパネルに表示される場合、比較を容易にするために他のすべてのパネルに含まれます。

p <- ggplot(df, aes(y=reorder(id, id)))
p <- p + geom_point(aes(x=year))
p <- p + facet_grid(sex ~.)
p

ここに画像の説明を入力

于 2013-11-04T19:03:28.783 に答える