У меня есть карта плотности ядра в R, но я бы хотел, чтобы значения 0 были прозрачными. Как мне изменить цвета, чтобы это было возможно?

У меня есть точечный образец (ppp), на котором я провел оценку плотности ядра. Я уже изменил цветовой вывод, используя это:

require(RColorBrewer) colfunc <- colorRampPalette(c("white", "black"))

Затем создал карту плотности ядра (ранее были указаны smktppp и W):

plot(density.ppp(smktppp, 0.5, edge=T), col=colfunc, main="Supermarket Density", window=W)

Вот мой результат

Я хотел бы сделать белые части (где KDE / scale на 0) прозрачными (без заливки). Как бы я это сделал?

Спасибо!


person skyandbuildings    schedule 25.02.2017    source источник
comment
Большинство программ построения графика оставляют значения NA пустыми или прозрачными. Иногда также признается ценность: прозрачность. Посмотрев на ваш сюжет, я пытаюсь понять (безуспешно), какой разницы вы ожидали, когда внесли эти изменения?   -  person IRTFM    schedule 25.02.2017
comment
Однако значения 0 не являются значениями NA. Он хотел бы сделать это с тремя графиками, а затем наложить их, чтобы создать карту, показывающую комбинированную плотность. В настоящий момент я не могу этого сделать, поскольку белые значения на следующем графике заменяют цветные значения на первом.   -  person skyandbuildings    schedule 25.02.2017
comment
Итак, пробовали ли вы ослепляюще очевидное: colorRampPalette(c("transparent", "black"))(5)? (Прочтите страницу справки для любой функции построения графика, обрабатывающей ppp-класс, чтобы узнать, поддерживает ли он прозрачность, хотя обычно это показатель, который решает устройство.)   -  person IRTFM    schedule 25.02.2017
comment
Кажется, это связано с вашим другим вопросом stackoverflow.com/q/42459424/3341769, на который я пытался ответить. Решает ли это и эту проблему? Если нет, то я дал краткий ответ ниже.   -  person Ege Rubak    schedule 26.02.2017


Ответы (1)


Если вы замените значения пикселей на NA, они не будут нанесены на график и, следовательно, будут работать как прозрачные. Например.

smktim  <- density.ppp(smktppp, 0.5, edge=T)
smktim[smktim<1e-7] <- NA
person Ege Rubak    schedule 26.02.2017