すべてのグループに 1 つの色
両方の密度プロットを赤くしたいようです。その場合、以下のように、group
代わりにfill
withinを使用aes
してグループ化変数を示し、fill
グラフ全体の色を設定できます。
m <- m + geom_density(aes(
group=factor(type)), fill="#ff0000"
, size=2, alpha=.4)
各グループの特定の色
しかし、実際に各グループに特定の色を設定しようとしている場合は、scale_fill_manual
. これを行うには 2 つの方法があります。名前付きの色のベクトルを使用するか、2 つのベクトル (1 つは色を使用し、もう 1 つはグループ名を使用) を使用します。これはドキュメントからのものです:
values
データ値をマッピングする美的価値のセット。これが名前付きベクターの場合、値は名前に基づいて照合されます。名前が指定されていない場合、値はスケールの範囲内の順序 (通常はアルファベット順) で照合されます。一致しないデータ値はすべて与えられna.value
ます。
1. 名前付きベクターの使用
groupColors <- c(a="#00ff00", b="#ff0000", c="#0000ff")
m <- ggplot(data, aes(x=lr))
m <- m + geom_density(aes(fill=factor(type)), size=2, alpha=.4) +
scale_fill_manual(values=groupColors)
m2 <- ggplot(data2, aes(x=lr))
m2 <- m2 + geom_density(aes(fill=factor(type)), size=2, alpha=.4) +
scale_fill_manual(values=groupColors)
2. 2 つのベクトルの使用
groupLimits <- c("a", "b", "c")
groupColors <- c("#00ff00", "#ff0000", "#0000ff")
m <- ggplot(data, aes(x=lr))
m <- m + geom_density(aes(fill=factor(type)), size=2, alpha=.4) +
scale_fill_manual(values=groupColors, limits=groupLimits)
m2 <- ggplot(data2, aes(x=lr))
m2 <- m2 + geom_density(aes(fill=factor(type)), size=2, alpha=.4) +
scale_fill_manual(values=groupColors, limits=groupLimits)
このアプローチの重要な違いの 1 つはgroupLimits
、異なるグループが凡例に表示される順序を制御することです (この場合、3 つのグループすべてが強制的に表示されます)。