2

geom_line() を使用するプロットの上にいくつかの線分を描画しています。驚いたことに、geom_line() のガイド (凡例) の色は、geom_line() でなくても、プロットに追加した最後の要素の色として描画されます。これは私にはバグのように見えますが、理解できない何らかの理由で予想される動作である可能性があります。

#Set up the data
require(ggplot2)
x <- rep(1:10, 2)
y <- c(1:10, 1:10+5)
fac <- gl(2, 10)
df <- data.frame(x=x, y=y, fac=fac)

#Draw the plot with geom_segment second, and the guide is the color of the segment
ggplot(df, aes(x=x, y=y, linetype=fac)) +
  geom_line() +
  geom_segment(aes(x=2, y=7, xend=7, yend=7), colour="red")

geom_segment() が geom_line() の後に来る場合

最初に geom_segment を追加すると、予想どおり、ガイドの色は黒になります。

ggplot(df, aes(x=x, y=y, linetype=fac)) +
  geom_segment(aes(x=2, y=7, xend=7, yend=7), colour="red") +
  geom_line()

geom_line() が geom_segment() の後に来る場合

機能またはバグ?最初の場合、誰かが何が起こっているのか説明できますか?

4

1 に答える 1

3

機能(っぽい)。描かれるガイドは線種のガイドです。しかし、それが見えるためには何らかの色で描かれなければなりません。色が美的マッピングによって指定されていない場合、ggplot2 はプロットと一致する色で描画します。デフォルトは、最後に使用された色であると推測しています。そのため、異なる順序でプロットすると違いが見られます。

ただし、凡例のこれらの詳細を制御できます。

ggplot(df, aes(x=x, y=y, linetype=fac)) +
  geom_line() +
  geom_segment(aes(x=2, y=7, xend=7, yend=7), colour="red") +
  scale_linetype_discrete(guide=guide_legend(override.aes=aes(colour="blue")))

ここに画像の説明を入力

于 2012-09-18T15:07:51.783 に答える