0

親愛なるスタックオーバーフローリーダー、

「生の」データがあり、さらにある種の平滑化関数を計算するデータセットがあります。次に、生データを点としてプロットし、平滑化を線としてプロットします。これは次の場合に機能します。

Loc <- seq(from=1,to=50)
Loc <- append(Loc,Loc)
x <- seq(from=0,to=45,by=0.01)
Val <- sample(x,100)
labels <- NULL
labels[1:50] <- 'one'
labels[51:100] <- 'two'

x2 <- seq(from=12,to=32,by=0.01)
Val2 <- sample(x2,100)
raw <- data.frame(loc=Loc,value=Val,lab=labels)
smooth <- data.frame(loc=Loc,value=Val2,lab=labels)

pl <- ggplot(raw,aes(loc,value,colour=lab)) + geom_point() + geom_line(data=smooth)
print(pl)

結果は次のようになります。

ここに画像の説明を入力してください

問題は、実際のデータに非常に多くのデータポイントが含まれているため、同じカラーパレットを使用すると非常に混乱することです(ポイントとラインの違いはほとんど区別できません)。できれば、geom_lines()を少し暗くします。を試してみましscale_colour_hue(l=40)たが、geom_points()も暗くなります。

提案をありがとう!

4

2 に答える 2

2

私はあなたに完璧な答えを持っていませんが、私はうまくいくものを持っています。次のように、線を別々のジオメトリに分割することで、線の色を個別に制御できます。

ggplot(raw,aes(loc,value)) + 
geom_point(aes(col=lab)) + 
geom_line(data=smooth[smooth$lab=="one",], colour="blue", size=1) + 
geom_line(data=smooth[smooth$lab=="two",], colour="black", size=1)

チャート1

これの欠点は、行の選択を手動で指定する必要があることですが、利点は、各行の視覚的なプロパティを手動で指定できることです。

もう1つのオプションは、同じパレットを使用しますが、次のように線を大きくして部分的に透明にすることです。

ggplot(raw,aes(loc,value,colour=lab)) + 
geom_point() + 
geom_line(data=smooth, size=2, alpha=0.5)

チャート2

ここから、ニーズに合わせてカスタマイズできるはずです。

于 2013-02-07T18:01:21.283 に答える
1

alpha=線を暗くする代わりに、に値を設定することでポイントを明るくすることができますgeom_point()

pl <- ggplot(raw,aes(loc,value,colour=lab)) + geom_point(alpha=0.5) + 
      geom_line(data=smooth)
print(pl)

ここに画像の説明を入力してください

于 2013-02-07T17:49:04.443 に答える