私は複数のggplotをリストに格納しています。しかし、彼らは私が使用したい異なるcolorscalesを持っている可能性があります。以下の例は、セクション1と2に示されています。それぞれプロットは完全に単独で生成されます。しかし、2つを組み合わせると、2つ目のカラースケール(1)が最初のカラースケール(3)よりも少ないので、後で最初のカラースケールを印刷するときにエラーが返されます(エラー:手動スケールでは値が不十分です。 1つしか提供されていません)。ggplot(2.1.0)の以前のバージョンが原因であるかどうかは不明です。このような問題を解決するために何か考えてください。同じscale_colour_manualを共有する複数のggplotを停止しますか?
data1<-mtcars;
data1$cyl<-as.factor(data1$cyl);
#section 1 #
plotlist[[1]]<-ggplot(data1[],aes_string(x='hp',y='wt',group=paste('paste0(','gear',',','cyl',')'),fill=('cyl')))+
geom_bar(stat='identity',position="dodge",size=1);
colourCount <- 3;
getPalette <- colorRampPalette(c(brewer.pal(11, "Spectral")[c(1:3,8:11)]));
plotlist[[1]]<-plotlist[[1]]+scale_colour_manual(values = rep(getPalette(min(colourCount,25)),times=floor(colourCount/25)+1))+
scale_fill_manual(values = rep(getPalette(min(colourCount,25)),times=floor(colourCount/25)+1));#adjust color
#section 2 #
plotlist[[2]]<-ggplot(data1[data1$cyl==4,],aes_string(x='hp',y='wt',group=paste('paste0(','gear',',','cyl',')'),fill=('cyl')))+
geom_bar(stat='identity',position="dodge",size=1);
colourCount <- 1;
getPalette <- colorRampPalette(c(brewer.pal(11, "Spectral")[c(1:3,8:11)]));
plotlist[[2]]<-plotlist[[2]]+scale_colour_manual(values = rep(getPalette(min(colourCount,25)),times=floor(colourCount/25)+1))+
scale_fill_manual(values = rep(getPalette(min(colourCount,25)),times=floor(colourCount/25)+1));
これはJavaScriptではなく、Rです。セミコロン? Srsly? – hrbrmstr