我有两组需要绘制在同一图表上的数据。其中一个集合非常大(约10⁶),我想用hexbin来绘制,而另一个集合非常小(约10),我想绘制点。如何在hexbin上绘制点? 我最接近成功的方法是这样的:
bin = hexbin(x, y)
plot(bin)
pushViewport(dataViewport(x, y))
grid.points(x, y)
我很感激任何帮助 :)
我有两组需要绘制在同一图表上的数据。其中一个集合非常大(约10⁶),我想用hexbin来绘制,而另一个集合非常小(约10),我想绘制点。如何在hexbin上绘制点? 我最接近成功的方法是这样的:
bin = hexbin(x, y)
plot(bin)
pushViewport(dataViewport(x, y))
grid.points(x, y)
我很感激任何帮助 :)
hexbin
包...library(hexbin)
library(grid)
# some data from the ?hexbin help
set.seed(101)
x <- rnorm(10000)
y <- rnorm(10000)
z <- w <- -3:3
# hexbin
bin <- hexbin(x, y)
# plot - look at str(p)
p <- plot(bin)
# push plot viewport
pushHexport(p$plot.vp)
# add points
grid.points(z, w, pch=16, gp=gpar(col="red"))
upViewport()
hexbinplot(y~x) + xyplot(z~w, col="red", pch=16, cex=2)
。 - user20650试试这个...应该可以正常工作。 只需在您的hexbinplot函数中创建一个面板函数:
hexbinplot(d.frame$X ~ d.frame$Y
,aspect=...,cex.title=...
,panel=function(x, y, ...){
panel.hexbinplot(x,y,...)
# panel.curve(...) # optional stuff
# panel.text(...) # optional stuff
panel.points(x=c(25,50),y=c(100,150),pch=20,cex=3.2)
}
)
举个例子,看一下:如何向多面板Lattice图形bwplot添加点?
library(ggplot2)
library(hexbin)
ggplot(diamonds, aes(carat, price)) + stat_binhex() + geom_point(data = diamonds[c(1,10,100,1000), ], aes(carat, price), size=10, color = 'red' )
points(bin)
而不是plot()
吗? - Molxhexbin()
会创建一个图表,但它并没有。 - Molx