如何与一个PNG作为背景阴谋?

我做了一个300万点的阴谋,并保存为PNG。 花了几个小时,我想避免重新绘制所有的要点。

在这里输入图像描述

我怎样才能产生一个新的情节,这个PNG作为背景?

尝试这个:

 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") 

下面是情节。

在这里输入图像描述

虽然@ bill_080的答案直接回答你的问题,这真的是你想要的? 如果你想绘制这个,你必须仔细alignment你的坐标系。 请参阅休斯顿犯罪地图如何使用ggplot2完成此任务。

对于你的问题,在我看来,可能有一个更容易的解决scheme:分档,即截止2d直方图。

 > df <- data.frame (x = rnorm (1e6), y = rnorm (1e6)) > system.time (plot (df)) User System verstrichen 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 verstrichen 0.704 0.040 0.784 

在这里输入图像描述

hexbin直接与lattice和ggplot2一起工作,但bin的中心坐标是binned@xcmbinned@xcm binned@ycm ,所以你也可以在base graphics中绘制结果。 有了大量的垃圾箱,你可以得到一个快速版本的原始情节:

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

在这里输入图像描述

但你可以很容易地得到编码密度的颜色:

 > 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)) 

在这里输入图像描述