Há duas coisas que afetarão a suavidade da plotagem, a largura de banda usada para a estimativa de densidade do kernel e as quebras às quais você atribui cores na plotagem.
Na minha experiência, para análise exploratória, apenas ajusto a largura de banda até obter um gráfico útil. Demonstração abaixo.
library(spatstat)
set.seed(3)
X <- rpoispp(10)
par(mfrow = c(2,2))
plot(density(X, 1))
plot(density(X, 0.1))
plot(density(X, 0.05))
plot(density(X, 0.01))
Simplesmente alterar o esquema de cores padrão não ajudará ninguém, nem alterará a resolução dos pixels (se alguma coisa a resolução padrão for muito precisa, você deverá reduzir a resolução e aumentar os pixels). Embora você queira alterar o esquema de cores padrão para fins estéticos, ele é altamente discriminatório.
Coisas que você pode fazer para ajudar a cor é alterar o nível de escala para logaritmos (será realmente só ajuda se você tem um muito processo não homogêneo), alterar a paleta de cores a variar mais na extremidade inferior (bias em termos de especificação de rampa de cores em R) ou ajuste a legenda para ter posições discretas em vez de contínuas.
Exemplos de viés na lenda adaptados daqui , e eu tenho outro post no site GIS explicando a coloração dos compartimentos discretos em um exemplo bastante simples aqui . Isso não ajudará se o padrão estiver acima ou abaixo da suavização, para começar.
Z <- density(X, 0.1)
logZ <- eval.im(log(Z))
bias_palette <- colorRampPalette(c("blue", "magenta", "red", "yellow", "white"), bias=2, space="Lab")
norm_palette <- colorRampPalette(c("white","red"))
par(mfrow = c(2,2))
plot(Z)
plot(logZ)
plot(Z, col=bias_palette(256))
plot(Z, col=norm_palette(5))
Para tornar as cores transparentes na última imagem (onde a primeira bandeja de cores é branca), basta gerar a rampa de cores e substituir a especificação RGB por cores transparentes. Exemplo abaixo usando os mesmos dados que acima.
library(spatstat)
set.seed(3)
X <- rpoispp(10)
Z <- density(X, 0.1)
A <- rpoispp(100) #points other places than density
norm_palette <- colorRampPalette(c("white","red"))
pal_opaque <- norm_palette(5)
pal_trans <- norm_palette(5)
pal_trans[1] <- "#FFFFFF00" #was originally "#FFFFFF"
par(mfrow = c(1,3))
plot(A, Main = "Opaque Density")
plot(Z, add=T, col = pal_opaque)
plot(A, Main = "Transparent Density")
plot(Z, add=T, col = pal_trans)
pal_trans2 <- paste(pal_opaque,"50",sep = "")
plot(A, Main = "All slightly transparent")
plot(Z, add=T, col = pal_trans2)