11

次の例では、2 つの一連の点を作成し、 を使用してそれらをプロットしますggplot2。また、値に基づいていくつかのポイントを強調表示します

library(ggplot2)
x <- seq(0, 6, .5)
y.a <- .1 * x -.1
y.b <- sin(x)
df <- data.frame(x=x, y=y.a, case='a')
df <- rbind(df, data.frame(x=x, y=y.b, case='b'))
print(ggplot(df) + geom_point(aes(x, y), color=ifelse(df$y<0, 'red', 'black')))

そして、これが結果です

最初の結果

caseここで、強調表示スキームを維持しながら、2 つの を 2 つのファセットに分けたいと思います。

> print(ggplot(df) + geom_point(aes(x, y), color=ifelse(df$y<0, 'red', 'black')) + facet_grid(case ~. ,))
Error: Incompatible lengths for set aesthetics: colour

これはどのように達成できますか?

4

2 に答える 2

3

scale_..._identity を使用する代わりに、色 (および塗りつぶし) の美学を でラップすることもできI()ます。また、 で色を定義する必要がありaesます。

私はこの質問に出くわしました。ここで、OPが誤って使用したと思いI()ます... ggplot color は、グループに基づいて自動的に色付けされません

私はいつもそれを利用するかどうかはわかりませんが、私はこの種の楽しみを見つけます.

library(ggplot2)
x <- seq(0, 6, .5)
y.a <- .1 * x -.1
y.b <- sin(x)
df <- data.frame(x=x, y=y.a, case='a')
df <- rbind(df, data.frame(x=x, y=y.b, case='b'))

ggplot(df) + 
  geom_point(aes(x, y, color= I(ifelse(y < 0, 'red', 'black')))) +
  facet_grid(case ~. )

reprex パッケージ(v0.3.0)により 2020-07-01 に作成

于 2020-07-01T12:54:45.803 に答える