1

我正在心形内生成随机点的镶嵌,我很难弄清楚如何控制图中像素的颜色。我认为plot(tess)(在此示例中)生成图像值图,我可以通过在色带中指定相同数量的颜色来控制它们,但事实并非如此。

library(spatstat)

t <- seq(from = 2*pi, to = 0.001, length.out = 1500)
x <- 16*sin(t)**3
y <- 13*cos(t) - 5*cos(2*t) - 2*cos(3*t) - cos(4*t) #heart equation taken from wolfram http://mathworld.wolfram.com/HeartCurve.html.
heart_win <- owin(poly = cbind(x,y)) #note - not self enclosed

#random sample of points within heart
points <- rpoint(100, win = heart_win)
tess <- dirichlet(points)
plot(tess, main = ' ')

#color for 100 values
norm_palette <- colorRampPalette(c("white","red"))
plot(tess, main = ' ', col=norm_palette(100), valuesAreColours = FALSE)

这会产生下面的图像:

在此处输入图像描述

是的,我就是那种直到(不要评判我)才把他的妻子当作情人节礼物的人!

4

2 回答 2

2

即使我不送礼物给我的妻子,我今天也不会送礼物,你可以试试这个:

 plot(tess$image,col=norm_palette(100))

在此处输入图像描述

于 2013-02-14T15:50:26.027 回答
2

您没有在 tess 对象中调用生成的图像。只需将您的绘图调用更改为:

plot(tess$image, main="", col=colorRampPalette(c("white","red"))(tess$n), valuesAreColours=FALSE)
于 2013-02-14T15:50:53.500 回答