2016-04-06 1 views
1

Я столкнулся с какой-то ошибкой при попытке построить участок плотности 2d, используя функцию ggplot2 stat_density2d. Когда я только пытаюсь построить контуры для графа, кажется, работает нормально:R, ggplot - Плотность показывает пробелы

ggplot(mydata, aes(x=x_loc, y=y_loc)) + stat_density2d(aes(fill = ..level..)) 

Однако, когда я пытаюсь заполнить слои с помощью геого = «многоугольника»

ggplot(mydata, aes(x=x_loc, y=y_loc))+stat_density2d(aes(fill = ..level..), geom = "polygon") 

я получаю это:

Filled in

Это выглядит как он дает ошибку геометрии по какой-то причине, но я не знаю, почему. Я попытался обойти это, но я не могу найти решение. Я обновил мою версию R и все мои пакеты, но это не исправляет.

Как воспроизводимым например:

matrix = matrix(c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,1,2,3,1,2,3,1,2,3,1,2, 
3,1,2,3,1,2,3,18,12,20,24,22,35,18,12,19,20,5,16,11,7,10,5,1,3), nrow = 18) 

ggplot(as.data.frame(matrix), aes(x=V1, y=V2)) + 
stat_density2d(aes(fill = ..level..), geom = "polygon") 

который имеет аналогичные проблемы, например, по бокам и сверху и снизу:

Example output

Если кто-то может помочь мне с этим это было бы здорово, застряли в этом несколько часов.

Заранее благодарен!

+0

Помогает ли [этот] (http://stackoverflow.com/q/36456535/324364) вопрос? – joran

+0

Ваш воспроизводимый пример, кажется, не воспроизводит для меня - что-то не так с шагом, на котором вы создаете матрицу! – user2728808

+0

@ user2728808 Извинения, я забыл добавить параметр nrow. Должно быть исправлено сейчас. –

ответ

1

Как упоминалось в комментарии @ joran, this question, похоже, похож на аналогичный. По умолчанию значения клиппинга вызывают проблему. Следующие работы для меня:

library(ggplot2) 

matrix = matrix(c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,1,2,3,1,2,3,1,2,3,1,2, 
3,1,2,3,1,2,3,18,12,20,24,22,35,18,12,19,20,5,16,11,7,10,5,1,3), nrow = 18) 

ggplot(as.data.frame(matrix), aes(x=V1, y=V2)) + 
stat_density2d(aes(fill = ..level..), geom = "polygon")+ 
lims(x = c(-1,8),y = c(-.25,4.25)) 
+0

Спасибо! который фиксирует начальную задачу. Однако теперь сюжет не в размерах, я хочу, чтобы это было больше. Есть ли в любом случае, чтобы полигоны отображались правильно и имели размеры, которые я хочу, чтобы они были? –

+0

Думаю, вы могли бы вручную отрегулировать значения '' lims'', чтобы получить желаемый результат? В противном случае, не уверен, что я боюсь! – user2728808

+0

Проблема в том, что когда я настраиваю значения «lims» на нужные числа, полигоны не отображаются должным образом. Спасибо за помощь до сих пор! –

Смежные вопросы