2

ggplot に色を追加しようとしていますが、うまくいかないようです。data.frame からプロットにすべてを自動的に追加する関数 PlotAllLayers があります。「Dark2」パレットを追加したいのですが、うまくいきません。

library(ggplot2)
x <- c(0:100)
df <- sapply(seq(5,100,by=10), function(n) dbinom(x,n,.6))
df <- data.frame(x,df)

plotAllLayers<-function(df){
  p<-ggplot(data=df,aes(df[,1]))
  for(i in names(df)[-1]){ 
    p<-p+geom_line(aes_string(y=i))
  }
  return(p)
}

testplot <- plotAllLayers(df)
testplot <- testplot + scale_color_brewer(palette="Dark2")
print(testplot)
4

1 に答える 1

5

関数にレイヤーを繰り返し追加する手法では、色の名前を繰り返し割り当てる必要があります。これは標準的な使用方法ではありませんggplot。代わりに、melt最初にデータを作成すると、すべてが簡単になります。

library(reshape2)
library(ggplot2)
# Melt your data:
melted.df<-melt(df,id.vars='x')
#   x variable   value
# 1 0       X1 0.01024
# 2 1       X1 0.07680
# 3 2       X1 0.23040

# Plot.
ggplot(melted.df,aes(x=x,y=value,colour=variable)) + 
  geom_line() + 
  scale_color_brewer(palette="Dark2")
# Warning that this palette doesn't support 10 colours.
于 2013-10-18T08:53:04.420 に答える