6

私は ggplot を使用して比例積み上げ棒グラフをプロットしています。そして、私が得ているプロットは次のようなものです: ここに画像の説明を入力

そして、これは私が使用している自己記述関数です:

df <- data.frame(id=letters[1:3],val0=1:3,val1=4:6,val2=7:9, val3=2:4, val4=1:3, val5=4:6, val6=10:12, val7=12:14)

PropBarPlot<-function(df, mytitle=""){
   melteddf<-melt(df, id=names(df)[1], na.rm=T)
   ggplot(melteddf, aes_string(x=names(df)[1], y="value", fill="variable")) + 
     geom_bar(position="fill") + 
     theme(axis.text.x = element_text(angle=90, vjust=1)) + 
     labs(title=mytitle)
}

print(PropBarPlot(df))

ここval4val5はあまり違いはありません。

しかし、色によっては見分けがつかないものもあります。差別化できるように、より良い色を選択する方法を教えてもらえますか?

ありがとう。

4

4 に答える 4

14

パッケージによって実装された、Web サイトscale_fill_brewerのカラー パレットを使用するものを使用するのはどうですか?ColorBrewerRColorBrewer

ggplot(diamonds, aes(clarity, fill=cut) ) +
geom_bar( ) +
scale_fill_brewer( type = "div" , palette = "RdBu" )

ここに画像の説明を入力

さまざまな分岐パレットから選択できます。

require(RColorBrewer)
?brewer.pal

さらに色が必要な場合は、colorRampPalette機能を使用していくつかの色を補間できます (これにはbrewer.palパレットを使用します)。これは次のように行うことができます。

# Create a function to interpolate between some colours
mypal <- colorRampPalette( brewer.pal( 6 , "RdBu" ) )
# Run function asking for 19 colours
mypal(19)
 [1] "#B2182B" "#C2373A" "#D35749" "#E47658" "#F0936D" "#F4A989" "#F8BFA5"
 [8] "#FCD6C1" "#F3DDD0" "#E7E0DB" "#DAE2E6" "#CBE1EE" "#ADD1E5" "#90C0DB"
 [15] "#72AFD2" "#5B9DC9" "#478BBF" "#3478B5" "#2166AC"

8色を必要とするあなたの例では、次のように使用しますscale_fill_manual()

PropBarPlot<-function(df, mytitle=""){
   melteddf<-melt(df, id=names(df)[1], na.rm=T)
   ggplot(melteddf, aes_string(x=names(df)[1], y="value", fill="variable")) + 
     geom_bar(position="fill") + 
     theme(axis.text.x = element_text(angle=90, vjust=1)) + 
     labs(title=mytitle)+
    scale_fill_manual( values = mypal(8) )
}

print(PropBarPlot(df))
于 2013-04-30T08:46:08.130 に答える