おそらく私の問題に対する非常に簡単な解決策がありますが、満足のいく答えをオンラインで見つけることができませんでした。
次のコマンドを使用して、次のボックスプロットグラフを作成し、個々のデータポイントでオーバーレイすることができました。
ggplot(data = MYdata, aes(x = Age, y = Richness)) +
geom_boxplot(aes(group=Age)) +
geom_point(aes(color = Age))
追加/変更したいことがいくつかあります。
1。左から右に6つの異なる色を使用して、各ボックスプロットの線の色や塗りつぶし(「年齢」に応じて)を変更します。
c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00")
私は試した
ggplot(data = MYdata, aes(Age, Richness)) +
geom_boxplot(aes(group=Age)) +
scale_colour_manual(values = c("#E69F00", "#56B4E9", "#009E73",
"#F0E442", "#0072B2", "#D55E00"))
しかし、結果は"Continuous value supplied to discrete scale"
エラー。
2。左から右に6つの異なる色を使用して、各データポイントの色を(「年齢」に応じて)変更します。
c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00")
私は試した:
ggplot(data = MYdata, aes(Age, Richness)) +
geom_boxplot(aes(group=Age)) +
geom_point(aes(color = Age)) +
scale_colour_manual(values = c("#E69F00", "#56B4E9", "#009E73",
"#F0E442", "#0072B2", "#D55E00"))
ただし、エラーも発生します。
離散スケールに供給される連続値
。凡例のテキストを「0か月」、「1か月」、「3か月」、「6か月」、「9か月」、「12か月」に変更します。
まず、サンプルデータを提供すると役立ちます。あなたがしなかったので、ここにいくつかあります:
MYdata <- data.frame(Age = rep(c(0,1,3,6,9,12), each=20),
Richness = rnorm(120, 10000, 2500))
パート1と2は同じ問題に由来します。 Age
は連続変数ですが、(年齢の特定の値の色を指定することにより)離散スケールで使用しようとしています。一般に、スケールは変数をビジュアルにマップします。連続した年齢の場合、データに表示されるものだけでなく、年齢のあらゆる可能な値に対応する色があります。ただし、年齢を一部の美学のカテゴリ変数(因子)として同時に扱うことができます。質問の3番目の部分では、スケールの説明内で、スケールの特定の区切りに対応する特定のラベルを定義できます。これをすべてまとめる(そして、例にあるもののようにラベル付けされたx軸を与えるために何かを追加する):
ggplot(data = MYdata, aes(x = Age, y = Richness)) +
geom_boxplot(aes(fill=factor(Age))) +
geom_point(aes(color = factor(Age))) +
scale_x_continuous(breaks = c(0, 1, 3, 6, 9, 12)) +
scale_colour_manual(breaks = c("0", "1", "3", "6", "9", "12"),
labels = c("0 month", "1 month", "3 months",
"6 months", "9 months", "12 months"),
values = c("#E69F00", "#56B4E9", "#009E73",
"#F0E442", "#0072B2", "#D55E00")) +
scale_fill_manual(breaks = c("0", "1", "3", "6", "9", "12"),
labels = c("0 month", "1 month", "3 months",
"6 months", "9 months", "12 months"),
values = c("#E69F00", "#56B4E9", "#009E73",
"#F0E442", "#0072B2", "#D55E00"))
このカラースキームでは、ボックスプロット内にあるポイントは表示されません(ボックスプロットの塗りつぶしと同じ色であるため)。おそらく、箱ひげ図を空のままにして、その線を色で描く方が良いでしょう。
ggplot(data = MYdata, aes(x = Age, y = Richness)) +
geom_boxplot(aes(colour=factor(Age)), fill=NA) +
geom_point(aes(color = factor(Age))) +
scale_x_continuous(breaks = c(0, 1, 3, 6, 9, 12)) +
scale_colour_manual(breaks = c("0", "1", "3", "6", "9", "12"),
labels = c("0 month", "1 month", "3 months",
"6 months", "9 months", "12 months"),
values = c("#E69F00", "#56B4E9", "#009E73",
"#F0E442", "#0072B2", "#D55E00"))
最後に、x軸によって既に明確に定義されているため、各年齢を実際に異なる色にする必要があるかどうかを検討します。