[解決済み】 boxplotに色を追加する - "離散的なスケールに連続的な値が供給される "エラー
質問
私の問題にはとても簡単な解決策があるのでしょうが、ネットで調べても納得のいく答えが見つかりませんでした。
以下のコマンドで、以下のようなボックスプロットグラフを作成し、個々のデータ点と重ね合わせることができました。
ggplot(data = MYdata, aes(x = Age, y = Richness)) +
geom_boxplot(aes(group=Age)) +
geom_point(aes(color = Age))
追加・変更したいことがいくつかあります。
1. 各ボックスプロットの線の色や塗りつぶしの色を、左から順に6色で変更できます(「Age」による)。
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色を使って、各データポイントの色を変える(「Age」による)。
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"))
が、エラーにもなってしまう。
離散的なスケールに連続的な値が供給される
3. 凡例のテキストを "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は、同じ問題から生じています。 {{コード は連続変数ですが、あなたはそれを離散的な尺度で使おうとしています(年齢の特定の値に対して色を指定することで)。一般に、スケールは変数を視覚的にマッピングします。連続的な年齢については、データにたまたま現れた値だけでなく、年齢のすべての可能な値に対応する色があります。 しかし、いくつかの美学のために、年齢をカテゴリー変数(因子)として同時に扱うことができます。 質問の3つ目として、スケールの説明の中で、スケールの特定の区切りに対応する特定のラベルを定義することができます。これをすべてまとめると(そして、例にあるようなラベルが付いたX軸を得るために何かを追加する)。
Age
画像
この配色では、ボックスプロットの内側に入る点は見えない(ボックスプロットの塗りと同じ色だから)。 ボックスプロットを空洞にして、その色で線を描くとよいかもしれません。
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"))
画像
最後に、各年齢はすでにX軸で明確に定義されているので、本当に異なる色を付ける必要があるかどうかを考えてみてください。
関連
-
[解決済み】エラー。Rの次元数が正しくない
-
[解決済み】プロット時に 'x' と 'y' の長さが異なる ERROR が発生する。
-
[解決済み] テスト
-
[解決済み】LMEモデルのレベル0、ブロック1でのバックソルブにおける特異性
-
[解決済み】rbind エラー。"名前が以前の名前と一致しない"
-
[解決済み】R ggplot2 で scale_x_discrete を使用する。
-
[解決済み】「'dimnames' [1]の長さが配列の範囲と等しくない」とはどういう意味ですか?
-
[解決済み】各グループの上位3要素を計算する際に「数値型、論理型、複合型でのみ可能な演算」を回避する方法
-
[解決済み】forループを実行すると「要因のレベルセットが異なる」というエラーが発生する
-
[解決済み】'NULL'型の非(リストまたはベクトル)に適用されるis.na()は何を意味するのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 不適合な配列のコードエラー
-
[解決済み】R - if文の引数の長さが0である。
-
[解決済み] テスト
-
[解決済み】エラー。Rの'break'の数が無効
-
[解決済み】Rエラー。"新しい列は既存の列の後に穴を空ける"
-
[解決済み】ロジスティック回帰 - eval(family$initialize) : y 値は 0 <= y <= 1 である必要があります。
-
[解決済み】 lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) のエラー : 'y' の NA/NaN/Inf, あらゆる方法を試したが解決しなかった。
-
[解決済み】rbind(deparse.level, ...)でエラー:引数の列の数がRにマッチしていない
-
[解決済み】Rはプロットするが、アブラインを描画しない
-
[解決済み】R4DSのエラー比較(1)は、アトミック型とリスト型でのみ可能です