23

geom_bar を使用して ggplot2 でいくつかの基本的な棒グラフを生成しています。各バーの上に同じ色で数字を表示したいのですが、geom_text を使用しています。を使用してバーを埋めていscale_fill_manual(values = alpha(c("#000000", "#FF5733")))ます。私が抱えている問題は、バーの上のテキストがカスタム カラーリングに変更されないことです。デフォルトの R カラーはそのままです。

library(ggplot2)
Area <- c("Option1", "Option2", "Option3")
Count <- c(193, 56, 4,240, 10, 25)
Type <- c("car", "car", "car", "bike", "bike", "bike")
p <- data.frame(Area, Count, Type)

ggplot(p, aes(x=Area, y=Count, color=Type)) + 
        geom_bar(stat="identity", position="dodge", aes(fill=Type), color="black")  +
        scale_fill_manual(values = alpha(c("#000000", "#FF5733"))) +
        geom_text(aes(label=Count), position=position_dodge(width = 0.9), vjust=-0.40)

私は無駄に次のことを試しました:

  1. ある時点で、テキストを黒にすることができれば、それを受け入れて先に進むことにしましたが、これを行うと、配置が失敗し、テキストをそれぞれの上に保持するのではなく、単一の「オプション」の両方のテキストを中央に配置しましたバー。

    geom_text(aes(label=Count), color="black", position=position_dodge(width = 0.9), vjust=-0.40)

  2. それから私はこれを試しました:

    geom_text(aes(label=Count, color=c("#000000", "#FF5733")), position=position_dodge(width = 0.9), vjust=-0.40)

この調整で次のエラーが発生します:エラー: 美学は長さ 1 またはデータ (6) と同じでなければなりません: ラベル、色、x、y

これは、バーが 6 本あるのに 2 色しか指定されていないためだと思います。しかし、さらに4回色を追加すると、私が望むものからさらに遠ざかります.

画像を投稿しようとしましたが、まだポイントが足りません! ごめん!

提供されたすべてのヘルプに感謝します。私はRStudioを実行しています:

R バージョン 3.2.3 (2015-12-10)
プラットフォーム: x86_64-apple-darwin13.4.0 (64 ビット)
実行環境: OS X 10.11.6 (El Capitan)
[1] ggplot2_2.1.0

平和。

4

1 に答える 1

31

colourオプションを美的マッピングに追加して、カスタム カラーをwithgeom_textの 2 つの因子レベルに割り当ててみてください。Typescale_colour_manual

ggplot(p, aes(x=Area, y=Count, color=Type)) + 
        geom_bar(stat="identity", position="dodge", aes(fill=Type), color="black")  +
    scale_fill_manual(values = alpha(c("#000000", "#FF5733"))) +
    geom_text(aes(label=Count, colour=Type), 
             position=position_dodge(width = 0.9), 
             vjust=-0.40) +
    scale_colour_manual(values=c("#000000", "#FF5733"))
于 2017-01-09T09:05:21.397 に答える