Reputation: 22946
This will be cross posted on R's mailing list.
I have the map as a png, so I won't be using the get_map
function.
I have extracted the raster data from the png, and I wish to load the map as it is on the display of R, and then I would like to plot a point on it.
So, here's the way I have tried ggmaps
. The program is compiling fine. Problem here is that there isn't any output being shown.
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))
Of course I am doing something wrong. Please point out.
> 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
>
EDIT: I have found an error.
Actually I was first running it with source (uff.R)
, and this command didn't show any error. Then I tried 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
Upvotes: 1
Views: 2356
Reputation: 94317
Your ggimage
is failing because there's no x
and y
in it. Rename your lat-long coords to x and y. Here is a completely reproducible example. This is basic ggplot stuff:
> 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))
Run those commands on your command line and you should see a plot. Possible reasons for failing are:
Upvotes: 3
Reputation: 60984
When calling grid
based plotting libaries (lattice
and ggplot2
), you need to explicitly print
the plot in order to get any output when using it outside of an interactive session:
bla = ggplot(...)
print(bla)
or shorter:
print(ggplot(...))
Upvotes: 1