2017-07-14 7 views
4

私はRベース関数 "image"で標高マップを生成しています。それにもかかわらず、私はレベル間のスムーズな遷移を得て、イメージがピクセル化されていないように見せたいと思います。論理的な解決策は私がすでに行ったより広範なカラーパレットを追加することですが、結果はまだ満足できるものではありません。座標系を変更せずにすばらしいスムージングエフェクトを達成するにはどうすればよいですか(一連のセグメントとポイントをオーバーレイする必要があります)何らかの理由interpolate=FALSEについてはRの画像関数で作成されたプロットを滑らかにするには?

x <- 10*(1:nrow(volcano)) 
y <- 10*(1:ncol(volcano)) 
shades = colorRampPalette(c("yellow", "red")) 
image(x, y, volcano, 
col=shades(100),breaks=seq(min(volcano),max(volcano), 
(max(volcano)- min(volcano))/100),axes = FALSE) 
segments(x0=c(100,600), x1=c(600,100), 
    y0=c(100,600), 
    y1=c(600,100)) 
points(x=seq(100,800,100), y=rep(300,8),pch=16,col="blue",cex=3) 
axis(1, at = seq(100, 800, by = 100)) 
axis(2, at = seq(100, 600, by = 100)) 

答えて

5

image.defaultにハードコーディングされていますが、直接、低レベルrasterImage機能を使用することができます。

m <- cut(scales::rescale(volcano), 100) 
levels(m) <- shades(100) 
m <- as.character(m) 
dim(m) <- dim(volcano) 
m <- t(m)[ncol(m):1,] 

rasterImage(as.raster(m), min(x), min(y), max(x), max(y), interpolate = TRUE) 

サイドバイサイドの比較:

enter image description here

関連する問題