1

これは、R のメーリング リストに相互投稿されます。

私はマップをpngとして持っているので、この機能は使用しませんget_map。png からラスター データを抽出したので、マップをそのまま R のディスプレイに読み込み、その上に点をプロットしたいと思います。

だから、ここに私が試した方法がありggmapsます。プログラムは正常にコンパイルされています。ここでの問題は、出力が表示されていないことです。

library (png)
library (ggmap)

latitude  = c(40.702147,40.718217,40.711614)
longitude = c(-74.012318,-74.015794,-73.998284)

# Reads a PNG and outputs a raster array.
img <- readPNG (system.file ("img", "My.png", package="png"))

df <- data.frame (latitude, longitude)

# img: raster array read from the map png.
ggimage (img, fullpage = TRUE) + geom_point (data = df, aes_auto (df), size = 2)

qplot (latitude, longitude, data = df, colour = I("red"), size = I(3))

もちろん、私は何か悪いことをしています。ご指摘ください。

> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=C                 LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] ggmap_2.1     ggplot2_0.9.1 png_0.1-4    

loaded via a namespace (and not attached):
 [1] colorspace_1.1-1   dichromat_1.2-4    digest_0.5.2       grid_2.15.1       
 [5] labeling_0.1       MASS_7.3-18        memoise_0.1        munsell_0.3       
 [9] plyr_1.7.1         proto_0.3-9.2      RColorBrewer_1.0-5 reshape2_1.2.1    
[13] RgoogleMaps_1.2.0  rjson_0.2.8        scales_0.2.1       stringr_0.6       
[17] tools_2.15.1      
> 

編集: エラーが見つかりました。 実際、私は最初に で実行していましたがsource (uff.R)、このコマンドはエラーを表示しませんでした。それから私は試しRscriptました。

anisha@linux-y3pi:~> Rscript uff.R
Loading required package: ggplot2
Loading required package: methods
Error in eval(expr, envir, enclos) : object 'x' not found
Calls: print ... sapply -> lapply -> eval.quoted -> lapply -> FUN -> eval
Execution halted
4

2 に答える 2

3

とが含まれていggimageないため、失敗しています。緯度と経度の座標の名前を x と y に変更します。これは完全に再現可能な例です。これは基本的なggplotのものです:xy

> library(png)
> library(ggplot2)
> img <- readPNG(system.file("img", "Rlogo.png", package="png"))
> latitude  = c(40.702147,40.718217,40.711614)
> longitude = c(-74.012318,-74.015794,-73.998284)
> df <- data.frame (x=longitude,y=latitude)
> qplot(x,y,data = df, colour = I("red"), size = I(3))

コマンド ラインでこれらのコマンドを実行すると、プロットが表示されます。失敗の考えられる理由は次のとおりです。

  • R にはディスプレイへの X11 接続がありません。これはすべてローカルの Linux マシンで実行されていますか? サーバーに接続していませんか?R がグラフィックス ウィンドウをポップアップできない場合、おそらく Rplots.pdf ファイルを作成しようとします。
  • 印刷されていないスクリプトで実行しています。print() 関数呼び出しで出力を生成するすべての ggplot、グリッド、およびラティス グラフィックス関数をラップします。これはFAQだと思います。ポール・ヒエムストラはこれを答えとして入れましたが、それを削除しました...
于 2012-07-24T09:37:24.350 に答える
1

gridベースのプロット ライブラリ (latticeおよび) を呼び出す場合、対話型セッションの外で使用するときに出力を取得するには、ggplot2明示的にプロットする必要があります。print

bla = ggplot(...)
print(bla)

またはそれより短い:

print(ggplot(...))
于 2012-07-24T08:46:50.680 に答える