0

ggplot2 ライブラリ関数を使用して、複数のモデル データを行ごとにカスタマイズされた色でプロットしたいと考えています。ggplot によって生成されたランダムな色を使用することはできますが、カスタマイズした色を配置しようとすると、凡例が消えます。この問題で私を助けてください。以下は、ラベルとともに 1 つの黒と 1 つの緑の色の線が必要な再現可能な例です。前もって感謝します。

library(ggplot2)

flux<-c(-4.351645e-11 ,7.724330e-10 ,-1.631623e-10,2.832141e-10,-2.396649e-11,
# first model 5 entries
-7.825169e-10 ,-2.534337e-10,-3.837198e-10 ,-2.765284e-10,-6.515152e-10)
# 2nd model 5 entries

model<-c('SDGVM','SDGVM','SDGVM','SDGVM','SDGVM',  # 1st model
        'TRIFFID','TRIFFID','TRIFFID','TRIFFID','TRIFFID') # 2nd model

latitude<-c(-34,-36,-39,-41,-44,-34,-36,-39,-41,-44)

color<-c('black','black','black','black','black',
            'green','green','green','green','green')

input_df <-structure(list(flux = flux, model = model, lat = latitude,
color_plate=color), 
.Names = c("flux","model", "lat","color_assigned"), row.names = c(NA, -10L),
class = "data.frame") 

xlims=c(-50,-30) # x axis extent
custom_break<-seq(min(xlims),max(xlims),by=2)


theme_set(theme_bw(12))

chart <-ggplot(input_df, aes(x=lat, group=model, colour=model, fill=model)) +
     geom_line(aes(y=flux), size=1.0) +
    theme(legend.position='bottom') + 
        scale_x_continuous('Latitude',limits=xlims,breaks=custom_break) + 
#custom breaks_to customize labels in x axis
    scale_y_continuous(expression('Flux Difference')) +
    scale_colour_discrete(name='', guide=guide_legend(nrow=4)) +
    scale_fill_discrete(name='Model') +
    geom_hline(aes(yintercept=0)) #to add black line at 0
print(chart)
4

1 に答える 1

3

間違ったプロパティ/属性を設定しています。を使用して設定できる手動の色を提供したいと考えていますscale_colour_manual

次の行を置き換えます。

scale_colour_discrete(name='', guide=guide_legend(nrow=4)) +

と:

scale_colour_manual(values=c("black", "green"), name="", 
              guide=guide_legend(nrow=4)) +

そしてさらに試みる。

次のようなプロットが得られるはずです。

ここに画像の説明を入力

これは役に立ちますか?

于 2013-03-29T01:30:52.583 に答える