2012-03-11 3 views
9

Я попробовал функцию abline, чтобы создать линейную линию регрессии на диаграмме рассеяния.Как создать линию линейной регрессии на диаграмме рассеяния с R?

x= c (1.0325477, 0.6746901, 1.0845737, 1.1123872, 1.1060822, 0.8595918, 0.8512941, 1.0148842, 1.0722369, 0.9019220 , 0.8809147, 1.0358256, 0.9903858, 1.0715174 , 1.1034405, 1.0143966,0.9802365, 0.7177169 , 0.9190783, 0.8408701) 
y= c (0.8550177, 0.8352162 ,1.0236998, 1.1071665, 0.6768144, 0.8449983 ,0.7616483, 0.8259199, 1.1539598, 1.4125006, 1.0511816, 0.9366184, 1.4101268, 1.2937913, 1.4147219 ,1.2943105 ,0.7859749, 0.6689330, 0.6940164, 0.8093392) 
plot(x,y) 
abline(lm(y ~ x)) 
Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : 
plot.new has not been called yet 

Любые предложения, пожалуйста,

+1

hmm, отлично подходит для меня – johannes

+1

для меня - не проблема? – vaettchen

+2

Это может произойти, если вы закрываете окно графика (или устройство) между вызовами 'plot' и' abline'. –

ответ

9

отлично работает для меня тоже, как и для остальных. Попробуйте закрыть и повторно открыть R.

Если все еще проблематично, можно попробовать:

# put x and y in a data frame 
dat<-data.frame(x=x,y=y) 
attach(dat) 
plot(x,y) 
abline(lm(y ~ x)) 
+0

многие опытные пользователи R рекомендуют 'attach()' и рекомендуют использовать аргумент 'data', где это возможно (например, в' lm', хотя, к сожалению, недоступно в 'plot') –

+1

@BenBolker -' with() 'достаточно как достойный суррогат для сюжета, с (dat, plot (y ~ x)) ' – Chase

+0

@Chase: true. Для начинающих пользователей я считаю, что относительная простота 'plot (dat $ x, dat $ y)' может быть лучше (хотя мне нравится 'with' и часто ее использовать). Вероятно, слишком поздно просить R-core для аргумента 'data' в' plot' ... –

1

участок (х ~ у)

abline (лм (х ~ у))

должен исправить этот код. В Mac OS это заставляет работать.

+0

Фактически, этот ответ не слишком полезен - вы перевернули переменные предсказателя и ответа, а исходный код работает для все, кто его пробовал ... –

0

Сначала создайте файл, чтобы показать свой результат, например, файлы pdf или svg, и тот же код, очевидно, поможет. Для уточнения

svg("filename1.svg") 
    plot(x ~ y) 
    abline(lm(y ~ x)) 
    dev.off() 
Смежные вопросы