ggplot2 two data.frames, doesn't know how to deal with data of class uneval
18,890
If using multiple datasets, try pulling the data
and aes
info out of the ggplot
function and putting it instead in each of the geom_*
objects as needed.
ggplot() +
geom_polygon(data=world.points,aes(long,lat,group=group)) +
geom_point(data=world.points,aes(long,lat,group=group)) +
# Separately, I'm not sure what the intended outcome is for this histogram, but it doesn't appear to be of a correct form
geom_histogram(data=tmp,aes(Lon3,Lat3),alpha=0.01,size=1) +
coord_map() +
ylim(-90,90)
with regards to the arguments
Notice that while the first argument to the function ggplot(.)
is data
, this is not
the case for most (any?) of the geom_*
s. Their first argument is the mapping
.
Hence if the first argument you are using is a dataset, make sure to name it explicity,
ie geom_point(data=myDataFrame, .)
# You can always check the arguments by using the `args(.)` function
> args(ggplot)
function (data = NULL, ...)
NULL
> args(geom_polygon)
function (mapping = NULL, data = NULL, stat = "identity", position = "identity", ...)
NULL
> args(geom_histogram)
function (mapping = NULL, data = NULL, stat = "bin", position = "stack", ...)
NULL
Author by
Til Hund
Updated on June 06, 2022Comments
-
Til Hund almost 2 years
I'm new to R and do not know how to plot two data.frames with ggplot2. I get the following error message:
Error: ggplot2 doesn't know how to deal with data of class uneval
How can I put together my data with the underlying world map?
Here is my code:
require(Hmisc) require(mapproj) require(ggplot2) require(rgdal) require(maptools) require(sp) require(cshapes) gpclibPermit() world <- cshp(date=as.Date("2008-1-1")) world.points <- fortify(world, region='COWCODE') p <- ggplot(world.points, aes(long,lat,group=group)) + geom_polygon() dat <- mdb.get("CLIWOC15_2000.mdb") # you can get the data from here: http://pendientedemigracion.ucm.es/info/cliwoc/cliwoc15.htm tmp <- dat$CLIWOC15[,c("Lon3","Lat3")] ggplot(world.points,aes(long,lat,group=group)) +geom_polygon() +geom_point() +geom_histogram(tmp,aes(Lon3,Lat3),alpha=0.01,size=1) +coord_map()+ylim(-90,90)