2016-12-20 2 views
0

Я хочу необходимо изменить калибровочный аргумент в примере сюжета, Example Plotspan аргумент не работает, работая с leess fit в ggplot2?

В коде я написал, чтобы получить этот участок, я не могу получить промежуток, чтобы сделать что-нибудь другое, чем по умолчанию 0.2. У меня есть подозрение, что это связано с тем, что я правильно назначил лесс для каждой из групп, но то, что я пробовал, не сработало. Я сделал примерный код, чтобы продемонстрировать аргумент span, который не влияет на нижнюю лесу ниже.

xy <- rbind(data.frame(x=sort(rnorm(n=46, mean=5, sd=2)), y=1:46),data.frame(x=sort(rnorm(n=46, mean=7, sd=3)), y=1:46), data.frame(x=sort(rnorm(n=46, mean=4, sd=7)), y=1:46)) 


plot.data <- data.frame(group=letters[rep(1:3, each=46)], xy) 

ggplot(plot.data, aes(x=x, y=y))+geom_smooth(method=loess, span=0.1, se=T, col='black') + geom_point(alpha=0.7) + facet_wrap(~group) 

ответ

1

Span связана с geom_smooth (...) вызов метода «лесс»,

Любые данные более 1000 точек данных по умолчанию для метода = «гам», так как это является более эффективным для больших наборов данных.

`geom_smooth()` using method = 'gam' 

Попробуйте явно указать метод = лесс, а затем установить диапазон.

geom_smooth(method = loess, span = 0.3) 

Примечание: Это экспоненциально увеличивает время визуализации диаграммы.

+0

Спасибо spotnag. Я понимаю, что я не заметил, что это закончилось раньше. Ваш ответ на месте и кратким и может помочь другим. Проблема у меня была, я не заметил недостатка комментариев вокруг метода = лёсс. R не возвращал никаких ошибок или предупреждений, он просто не показывал, что я хотел, что оставило меня очень смущенным. Обычно какой-то красный текст напоминает мне, что я сделал что-то неправильно. – James

+0

Не беспокойтесь, рад, что вы разобрали свою проблему. – spotnag

0

На мой взгляд, это, вероятно, имеет меньше делать с ggplot2 и больше, чтобы сделать с вашими данными. Обратите внимание:

plot.data.a <- plot.data[plot.data$group == 'a', ] 
par(mfrow = c(2,2)) 
for(i in seq(.1, .9, length.out = 4)){ 
    plot(plot.data.a[,-1], main = paste('Span of', round(i, 2))) 
    lines(loess(y ~ x, data = plot.data.a, span = i)) 
} 

enter image description here

Кажется, что изменения продолжительности практически не имеет никакого визуального воздействия loess приступа.

Итак, как вы делали свои участки и варьируя span, вполне вероятно, что ggplot2 понял вы изменяли span, это просто, что припадки были относительно неизменными.

+0

Благодарим вас за понимание, это помогло мне взглянуть на это под другим углом. Я понимаю, что мои «примерные данные» были немного мусором, что тоже не помогло. – James

+0

Я обнаружил, что проблема связана с аргументом method = geom_smooth. Я не ставил лесс в боковые кавычки. Если вы снова запустите код вверху с помощью метода = «лёсс», то аргумент span работает, он тонкий для этих данных, но по данным, которые мне нужны для его работы, он отлично работает. – James

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