У меня проблемы с созданием перспективного графика, который выглядит именно так, как я хочу, чтобы он выглядел.В частности, я стараюсь, чтобы сетка не была видна вообще.Если вы посмотрите на изображение слева, вы можете увидеть слабые линии между плитками.Я хочу, чтобы оно выглядело как правильное изображение без видимых линий:
Я специально хочу решение с graphics::persp
или другой базовой функцией R.Меня не интересуют сторонние пакеты, такие как rgl
.
. Я получил право, используя polygon
и указав цвет border
, соответствующий цвету col
.Если я оставлю border=NA
с polygon
, то получу тот же результат, что и с persp
.Однако кажется, что persp
просто берет первое значение границы и использует его повторно, в отличие от polygon
, который сопоставляет цвета с полигонами.
Этот код используется для генерации изображения:
nr <- nc <- 10
mx <- matrix(numeric(nr * nc), nr)
par(mai=numeric(4))
col <- gray((row(mx[-1,-1]) * col(mx[-1,-1])/((nr-1)*(nc-1))))
par(mfrow=c(1,3), mai=c(0, 0, .25, 0), pty='s')
persp(
mx, phi=90, theta=0, border=NA, col=col, r=1e9, zlim=c(0,1),
axes=FALSE, box=FALSE
)
title('Persp border=NA')
persp(
mx, phi=90, theta=0, border=col, col=col, r=1e9, zlim=c(0,1),
axes=FALSE, box=FALSE
)
title('Persp border=col')
plot.new()
mxpoly.x <- rbind(
c(row(mx)[-nr, -nc]), c(row(mx)[-1, -nc]), c(row(mx)[-1, -1]),
c(row(mx)[-nr, -1]), NA
)
mxpoly.y <- rbind(
c(col(mx)[-nr, -nc]), c(col(mx)[-1, -nc]), c(col(mx)[-1, -1]),
c(col(mx)[-nr, -1]), NA
)
title('Polygon')
polygon(
((mxpoly.x - 1) / (max(mxpoly.x,na.rm=TRUE) - 1)),
((mxpoly.y - 1) / (max(mxpoly.y,na.rm=TRUE) - 1)),
col=col, border=col
)