2

ggplot でデータフレームをプロットしようとしていますが、ポイントとラインを目的の順序で表示するのに問題があります。

データは同じ列 (係数 0 または 1) に基づいて分割され、線と点の両方で 0 を 1 の上にプロットします (他の 4 つの別々の列からのデータを使用します)。

私の要点を説明するために、以下のテスト データ フレームを作成しました。私の実際のデータフレームには数千のポイントがあり、多数のデータフレームをプロットしたいので、データをサブセット化して別のレイヤー/ジオメトリとしてプロットするなどの回避策を実際に使用したくありません。

testdata <- data.frame(Split = c(rep(0,5), rep(1,5)), a = rep(1:5,2), 
      b = c(7,8,9,10,11,6,8,9,10,12), x = c(1:5, 1:5), y = c(1:3,5,6,1.1,2.1,4.1,5.1,7.1))
testdata$Split <- factor(testdata$Split)


ggplot(data = testdata)+
  geom_point(aes(x = x, y = y, colour = Split), size = 4)+
  geom_line(aes(x = a, y = b, colour = Split))

testdata$Split <- ordered(testdata$Split, levels = rev(levels(testdata$Split)))

コード行を実行してレベルの順序を逆にすると、どの行が前面に表示されるかが交換されますが、どのポイント セットが交換されるわけではありません。したがって、最初は Split = 0 に関連するポイントとラインの両方が遅れていますが、順序を逆にすると、Split = 0 からのラインが前にあります (私が望むもの) が、Split = 0 のポイントは Split = 1 のポイントの後ろに残ります。

ここで何が起こっているのか、どうすればこれを機能させることができるのかを教えていただければ幸いです。

ありがとう

4

1 に答える 1