Є дві речі, які впливатимуть на плавність ділянки, пропускну здатність, використану для вашої оцінки щільності ядра, та перерви, яким ви присвоюєте кольори у графіці.
На мій досвід, для дослідницького аналізу я просто регулюю пропускну здатність, поки не отримаю корисну ділянку. Демонстрація нижче.
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))
Просто зміна кольорової схеми за замовчуванням не допоможе жодній, а також не змінить роздільну здатність пікселів (якщо що-небудь роздільна здатність за замовчуванням занадто точна, і ви повинні зменшити роздільну здатність і збільшити пікселі). Хоча ви, можливо, захочете змінити кольорову гаму за замовчуванням на естетичні цілі, вона має бути дуже дискримінаційною.
Що ви можете зробити, щоб допомогти кольорові, - це зміни рівня масштабу на логарифми (це дійсно допоможе лише в тому випадку, якщо у вас дуже неоднорідний процес), змініть палітру кольорів, щоб змінитись в нижній частині (зміщення щодо специфікації кольорової рампи в R) або відрегулюйте легенду, щоб мати дискретні бункери замість суцільних.
Приклади упередженості в легенді адаптовані звідси , і у мене є ще один пост на сайті ГІС, що пояснює фарбування дискретних бункерів на досить простому прикладі тут . Вони не допоможуть, хоча, якщо візерунок закінчений або недостатньо згладжений, хоча для початку.
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))
Щоб зробити кольори прозорими на останньому зображенні (де перший бункер для кольорів білий), можна просто генерувати кольорову рампу, а потім замінити специфікацію RGB прозорими кольорами. Приклад нижче, використовуючи ті самі дані, що і вище.
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)