2017-09-21 28 views
0

私はいくつかのデータを持っており、私はfilled.contourプロットを試してみました。しかし、伝説は制御が難しいので、私はggplo2を使用することを考えています。しかし、ggplot2を使ってfilled.contourをプロットする方法がわかりません。ggplot2を使ってfilled.contourプロットをプロットする方法は?

データには、840行(日付を表す)と12列(12時間刻み)が含まれています。私たちが見ることができるようにここでは一例

set.seed(66) 
Mydata <- sample(x=(-3:3),size = 840*12,replace = T) 
Mydata <- matrix(data=Mydata,nrow=840,ncol=12) 
Dates <- seq(from=1948+1/24, to= 2018,by=1/12) 
data.breaks <- c(-3.5,-2.5,-1.5,0,1.5,2.5,3.5) 
filled.contour(Dates,seq(1:12),Mydata,col=cols(11),xlab="",ylab="time-scale",levels=data.breaks) 

enter image description here

で、伝説の間隔は、私が欲しいものではありません。伝説に-3.5,-2.5,-1.5,0,1.5,2.5,3.5を表示したいと思います。ggplot2でこれを行う方がはるかに簡単だと思います。助けてくれてありがとう。

答えて

4

ggplot2filled.contourの代わりに、stat_contourがあります。

library(ggplot2) 
library(reshape2) 
set.seed(66) 
Mydata <- sample(x=(-3:3),size = 840*12,replace = T) 
Mydata <- matrix(data=Mydata,nrow=840,ncol=12) 
Dates <- seq(from=1948+1/24, to= 2018,by=1/12) 
data.breaks <- c(-3.5,-2.5,-1.5,0,1.5,2.5,3.5) 
rownames(Mydata) <- Dates 

d <- melt(Mydata) 
colfunc = colorRampPalette(c("brown", "red", "yellow", "white")) 
ggplot(d, aes(Var1, Var2, z=value, fill = value)) + 
    stat_contour(geom="polygon", aes(fill=..level..)) + 
    scale_fill_gradientn(colours = colfunc(7), breaks=data.breaks, limits=c(-4,4), 
          values=scales::rescale(data.breaks))+ 
    theme_bw() + 
    scale_x_continuous(name="", breaks=seq(1950,2010,20), expand=c(0,0)) + 
    scale_y_continuous(name="time-scale", expand=c(0,0))+ 
    guides(fill = guide_colorbar(barwidth = 2, barheight = 15)) 

enter image description here

+0

あなたの助けをありがとうございました。しかし、私が望む伝説の休憩をどうやって得るのだろうか?ありがとう。 –

+0

ところで、 'ggplot2'でプロットされた図形と' filled.contour'でプロットされた図形はかなり異なっていますが、これを修正できますか?どうもありがとう。 –

+0

@ヤンヤンどのような意味で「全く違う」ですか?私は 'filled.contour'を使ってそれを複製しましたが、小さな違いしか見つかりませんでした。私に詳細を教えてください。 –

関連する問題