1

私は学部生の研究者で、ここ数か月 R を独学で学んでいます。私はggplotを試し始めたばかりで、いくつかの問題に遭遇しました。さまざまな音響受信局での魚の深さを調べる一連の箱ひげ図を作成しました。受信局の深さを示す散布図を追加したいと思います。これは私がこれまでに持っているものです:

data    <- read.csv(".....MPS.csv", header=TRUE)
df      <- data.frame(f1=factor(data$Tagging.location), #$
                      f2=factor(data$Station),data$Detection.depth)
df2     <- data.frame(f2=factor(data$Station), data$depth)
df$f1f2 <- interaction(df$f1, df$f2) #$
plot1   <- ggplot(aes(y = data$Detection.depth, x = f2, fill = f1), data = df) + #$
                  geom_boxplot() + stat_summary(fun.data = give.n, geom = "text", 
                  position = position_dodge(height = 0, width = 0.75), size = 3)
                  plot1+xlab("MPS Station") + ylab("Depth(m)") +
                  theme(legend.title=element_blank()) + scale_y_reverse() + 
                  coord_cartesian(ylim=c(150, -10))
plot2   <- ggplot(aes(y=data$depth, x=f2), data=df2) + geom_point()
                  plot2+scale_y_reverse() + coord_cartesian(ylim=c(150,-10)) + 
                  xlab("MPS Station") + ylab("Depth (m)")

残念ながら、私はこのフォーラムの新規ユーザーであるため、これら 2 つのプロットの画像をアップロードすることは許可されていません。私の X 軸は「ステーション」(12 のオプションがあります) で、Y 軸は「深さ」(0-150 m) です。箱ひげ図は、タグ付けサイトごとに色分けされています (2 つのオプションがあります)。深度はスプレッドシートの 2 つの異なる列から取得されており、それらを 1 つに結合することはできません。

私の目標は、「plot2」(ステーション深度散布図) を「plot1」ボックスプロット (検出深度) に追加して、これら 2 つのプロットを結合することです。どちらも同じ変数 (深度と測点) を見ており、同じ Y 軸スケールでなければなりません。

Rのベースプログラムを使えば面倒くさい回避策が思いつくと思いますが、できればggplotをしっかり学びたいです。どんな助けでも大歓迎です!

4

1 に答える 1

4

更新: 元の投稿で使用されている言葉に戸惑い、必要以上に複雑な回答を書きました。これがクリーンアップされたバージョンです。

ステップ 1 : セットアップ。ここでは、両方のデータ フレームの深度値が同じ変数名であることを確認します (読みやすくするため)。

df <- data.frame(f1=factor(data$Tagging.location), f2=factor(data$Station), depth=data$Detection.depth)

df2 <- data.frame(f2=factor(data$Station), depth=data$depth)

ステップ 2 : これを 'ggplot' 関数でプロットし、`col=f1`` 引数を使用してデータを分割できます。箱ひげ図が必要なため、検出データを個別にプロットし、ステーションの深度を色付きの点でプロットします (各ステーションの深度が 1 つだけであると仮定します)。メインの「ggplot」関数内でデータを指定する代わりに、「geom」関数内からデータを参照して、2 つの異なるプロットを指定します。次のようになります。

ggplot()+geom_boxplot(data=df, aes(x=f2, y=depth, col=f1)) + geom_point(data=df2, aes(x=f2, y=depth), colour="blue") + scale_y_reverse()

このプロット例では、箱ひげ図を使用して検出データを表し、これらの箱ひげ図をサイト ラベルで色付けします。ただし、ステーションは特定の色のポイントを使用して個別にプロットするため、箱ひげ図との関係でそれらを明確に見ることができます。

ここから、ニーズに合わせてプロットを調整できるはずです。

ダミー データをいくつか作成し、グラフに読み込んで、どのようになるかを示しました。これは純粋にランダムなデータであり、実際には意味がないことに注意してください。

深度チャート

于 2013-02-05T13:47:43.303 に答える