Trazar datos sobre la imagen de fondo con ggplot

Estoy tratando de trazar algunos datos sobre una imagen de fondo. El problema es que ambas capas terminan utilizando la misma escala. Esto es desafortunadamente problemático.

Un ejemplo.

Quiero trazar algunos datos sobre estoimagen.

Derecha. Así que lo graficamos en ggplot así.

img <- readJPEG("image.jpg")
image <- apply(img, 1:2, function(v) rgb(v[1], v[2], v[3]))
image <- melt(image)
ggplot(image, aes(row, -column, fill=fill)) + geom_tile() + scale_fill_identity()

Y funciona bien. Entonces, vamos a agregar algunos datos en la parte superior.

df <- data.frame(x=sample(1:64, 1000, replace=T), 
  y=sample(1:64, 1000, replace=T))
ggplot(df, aes(x,y)) + stat_bin2d()

Al trazar los datos de la muestra, me saleesta.

Así que solo quiero esta gráfica de datos en capas sobre la imagen del degradado.

ggplot(image, aes(row, -column, fill=fill)) + geom_tile() + 
  scale_fill_identity() + geom_point(data=df2, aes(x=x, y=-y))

Pero termina comoesta

Intentar especificar una segunda escala de relleno genera un error. Veoesta dice que no se puede hacer, pero espero que haya una solución o algo que esté pasando por alto.

Respuestas a la pregunta(1)

Su respuesta a la pregunta