ここで ボックスとひげのプロット の呼び出しに気付きました:
p + geom_boxplot(aes(fill = factor(cyl)))
ボックスプロット塗りつぶしに明るい赤/緑/青の色を生成します。
p + geom_boxplot(aes(fill = factor(vs)))
明確な淡い緑/赤の色を生成します。私のデータでは、2番目の色のセットを取得していますが、最初の色のセット(
p + geom_boxplot(aes(fill = factor(cyl)))
ggplotが使用する色のセットを制御し、どのように変更できますか?
ありがとう
デフォルトの色は、カラーホイールの周りの等間隔の色相です。これが here からどのように生成されるかを確認できます。
これらの色で_scale_fill_manual
_を使用できます。
_p + scale_fill_manual(values=c("#F8766D", "#00BA38"))
_
ここでは、cyl
からggplot_build(p)$data
を使用して色を取得しました。
または、次のように別のパレットを使用することもできます。
_p + scale_fill_brewer(palette="Set1")
_
そして、パレットの色を見つけるために、次のことができます:
_require(RColorBrewer)
brewer.pal(9, "Set1")
_
興味がある場合は、パレットやその他のオプションについてパッケージを確認してください。
編集:@ user248237dfsf、Ialreadyが上部のリンクで指摘したように、この関数は@Andrieは生成された色を示します。
_ggplotColours <- function(n=6, h=c(0, 360) +15){
if ((diff(h)%%360) < 1) h[2] <- h[2] - 360/n
hcl(h = (seq(h[1], h[2], length = n)), c = 100, l = 65)
}
> ggplotColours(2)
# [1] "#F8766D" "#00BFC4"
> ggplotColours(3)
# [1] "#F8766D" "#00BA38" "#619CFF"
_
生成された2つの色を見ると、最初の色は同じですが、2番目の色は同じではありません(n = 2とn = 3の場合)。これは、等間隔色相の色を生成するためです。 cyl
のvs
の色を使用する場合は、_scale_fill_manual
_を設定し、この関数からn = 3で生成されたこれらの色を使用する必要があります。
これが実際に何が起こっているのかを確認するには:
_p1 <- ggplot(mtcars, aes(factor(cyl), mpg)) +
geom_boxplot(aes(fill = factor(cyl)))
p2 <- ggplot(mtcars, aes(factor(cyl), mpg)) +
geom_boxplot(aes(fill = factor(vs)))
_
今、あなたがするなら:
_ggplot_build(p1)$data[[1]]$fill
# [1] "#F8766D" "#00BA38" "#619CFF"
ggplot_build(p2)$data[[1]]$fill
# [1] "#F8766D" "#00BFC4" "#F8766D" "#00BFC4" "#F8766D"
_
これらはggplotColours
を使用して生成された色であり、違いの理由も明らかです。これがお役に立てば幸いです。