4

データセットをプロットするときに、データセット内の各要素を一貫して表す方法を考え出そうとしています。したがって、たとえば、品詞を含む何かをグラフ化するたびに、「品詞」のレベルをさまざまな青の色合いで表すことができます。

eg.dat <- data.frame(rt=c(530, 540, 555), 
                     part.of.speech=c("Verb", "Noun", "Both")
                     )

ggplot(eg.dat, aes(part.of.speech, rt, fill=part.of.speech)) +
  geom_bar(stat="identity", colour="black") +
  scale_fill_manual(values=c("cyan", "blue", "darkblue")) 

色を手動で指定する

ただし、すべての要素に対してこのような派手な色の名前を考え出すのは難しいため、より自動化された解決策を探していました. かなりハックな回避策の 1 つは、次を使用することalphaです。

ggplot(eg.dat, aes(part.of.speech, rt, alpha=part.of.speech)) +
  geom_bar(stat="identity", colour="black", fill="blue") +
  scale_alpha_discrete(range=c(0.4, 1))

アルファの使用

しかし、このような似たような色の短い範囲を選択する簡単な方法があるかどうか疑問に思っていました. のscale_colour_gradient型関数は、ggplot2このような個別の要素では機能しません。また、rainbowまたはからカスタム カラーを取得するのは特に簡単ではないようですheat.colors。理想的な関数は次のようなものです: 、色の値shades(n, central_colour="blue")を返します。nこれを達成するための最良の方法について何か提案はありますか?

4

1 に答える 1

10

scale_fill_discreteまたはscale_fill_hueこれを行います。hcおよびl(色相、彩度、輝度)を定義できます。詳しく?hclはこちら

例えば。

ggplot(eg.dat, aes(part.of.speech, rt, fill=part.of.speech)) +
     geom_bar(stat="identity", colour="black") +
     scale_fill_discrete( h =c(220,260))

ここに画像の説明を入力

scale_fill_hue同じ結果が得られます (この場合)。

scale_fill_brewerパッケージを使用し、 colorbrewerパレットRColorBrewerへのアクセスを提供するものを使用することもできます

ggplot(eg.dat, aes(part.of.speech, rt, fill=part.of.speech)) +
     geom_bar(stat="identity", colour="black") +
     scale_fill_brewer(palette = 'Blues')

ここに画像の説明を入力

于 2012-07-24T06:25:26.220 に答える