Comment tracer avec un png comme arrière-plan?

J’ai fait un tracé avec 3 millions de points et je l’ai enregistré en PNG. Cela a pris quelques heures et je voudrais éviter de re-dessiner tous les points.

entrer la description de l'image ici

Comment puis-je générer un nouveau tracé comportant ce PNG en arrière-plan?

Essaye ça:

 library(png) #Replace the directory and file information with your info ima <- readPNG("C:\\Documents and Settings\\Bill\\Data\\R\\Data\\Images\\sun.png") #Set up the plot area plot(1:2, type='n', main="Plotting Over an Image", xlab="x", ylab="y") #Get the plot information so the image will fill the plot box, and draw it lim <- par() rasterImage(ima, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4]) grid() lines(c(1, 1.2, 1.4, 1.6, 1.8, 2.0), c(1, 1.3, 1.7, 1.6, 1.7, 1.0), type="b", lwd=5, col="white") 

Ci-dessous l'insortinggue.

entrer la description de l'image ici

Alors que la réponse de @ bill_080 répond directement à votre question, est-ce vraiment ce que vous voulez? Si vous voulez tracer sur cela, vous devrez aligner soigneusement vos systèmes de coordonnées. Voir par exemple Houston Crime Map comment cela peut être fait avec ggplot2.

Pour votre problème, il me semble qu’il peut y avoir une solution plus facile: le binning, c’est-à-dire la mise en évidence des histogrammes 2D.

 > df <- data.frame (x = rnorm (1e6), y = rnorm (1e6)) > system.time (plot (df)) User System verssortingchen 54.468 0.044 54.658 > library (hexbin) > system.time (binned <- hexbin (df, xbins=200)) User System verstrichen 0.252 0.012 0.266 > system.time (plot (binned)) User System verssortingchen 0.704 0.040 0.784 

entrer la description de l'image ici

hexbin fonctionne directement avec lattice et ggplot2, mais les coordonnées centrales des binned@xcm sont binned@xcm et binned@ycm , vous pouvez donc également tracer le résultat dans les graphiques de base. Avec un nombre élevé de bacs, vous obtenez une version rapide de votre tracé d’origine:

 > system.time (plot (binned@xcm, binned@ycm, pch = 20, cex=0.4)) User System verssortingchen 0.780 0.004 0.786 

entrer la description de l'image ici

mais vous pouvez facilement avoir les couleurs codant la densité:

 > plot (binned@xcm, binned@ycm, pch = 20, cex=0.4, col = as.character (col)) > col <- cut (binned@count, 20) > levels (col) <- grey.colors (20, start=0.9, end = 0) > plot (binned@xcm, binned@ycm, pch = 20, cex=0.4, col = as.character (col)) 

entrer la description de l'image ici