2014-01-24 3 views
1

Я столкнулся с довольно легко решаемой проблемой: добавив кривую логарифма к диаграмме рассеяния. Я уже создал соответствующую модель, и теперь мне нужно только добавить соответствующую кривую/строку.Запланируйте логарифмическую кривую на график рассеяния

Текущая модель выглядит следующим образом:

### DATA 
SpStats_urbanform <- c (0.3702534,0.457769,0.3069843,0.3468263,0.420108,0.2548158,0.347664,0.4318018,0.3745645,0.3724192,0.4685135,0.2505839,0.1830535,0.3409849,0.1883303,0.4789871,0.3979671) 

co2 <- c (6.263937,7.729964,8.39634,8.12979,6.397212,64.755192,7.330138,7.729964,11.058834,7.463414,7.196863,93.377393,27.854284,9.081405,73.483949,12.850917,12.74407) 

### Plot initial plot 
plot (log10 (1) ~ log10 (1), col = "white", xlab = "PUSHc values", 
     ylab = "Corrected GHG emissions [t/cap]", xlim =c(0,xaxes), 
     ylim =c(0,yaxes), axes =F) 

axis(1, at=seq(0.05, xaxes, by=0.05), cex.axis=1.1) 
axis(2, at=seq(0, yaxes, by=1), cex.axis=1.1) 


### FIT 
fit_co2_urbanform <- lm (log10(co2) ~ log10(SpStats_urbanform)) 


### Add data points (used points() instead of simple plot() bc. of other code parts) 
points (co2_cap~SpStats_urbanform, axes = F, cex =1.3) 

Теперь, у меня уже все fit_parameters и до сих пор не в состоянии построить соответствующую отделку кривую co2_cap (ось у) ~ SpStats_urbanform (х -axis)

Может ли кто-нибудь помочь мне завершить эту небольшую часть кода?

+2

Вы, скорее всего, чтобы получить полезный ответ, если вы предоставите воспроизводимый пример. Вот несколько советов о том, как действовать. http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –

+0

Поскольку вы можете получить наклон и перехват из объекта 'fit_co2_urbanform', просто используйте их для построения' y <- перехват + наклон * log10 (x) 'с' x'-значениями по вашему выбору. Боковое замечание: однажды вы столкнетесь с проблемой, если вместо «0» вместо «0» для имен переменных «карбоксиоксид» используйте «o». –

+0

Эй, большое спасибо за помощь. Я изменил пример - теперь это запущенная программа. ВПЕРВЫЕ ЛЮБОЙ МОЖЕТ ДОБАВЛЯТЬ ЖЕЛАЮЩИЙ LOG_CURVE ... СПАСИБО ТАК МНОГО !!!!! – user3232090

ответ

-1

Во-первых, если вы хотите построить в логарифмическом пространстве, вы должны указать его с аргументом log="xy":

plot (co2~SpStats_urbanform, log="xy") 

Затем, если вы хотите, чтобы добавить линию регрессии, а затем использовать abline:

abline(fit_co2_urbanform) 

enter image description here

Редактировать: Если вы не хотите, чтобы построить в логарифмическом масштабе, то вам придется перевести уравнение log10(y)=a*log10(x)+b в y=10^(a*log10(x)+b) и построить его с curve:

f <- coefficients(fit_co2_urbanform) 
curve(10^(f[1]+f[2]*log10(x)),ylim=c(0,100)) 
points(SpStats_urbanform,co2) 

enter image description here

+0

Привет, спасибо! Это ясно для меня. Тем не менее, я точно НЕ хочу строить линию линейной регрессии, но добавить LOGARITHMIC CURVE, которая возникает из-за взаимосвязи между обеими переменными. Есть идеи? БЛАГОДАРЯ !!!! – user3232090

+0

@ user3232090 Ах нормально. См. Править, затем. – plannapus

+0

СПАСИБО ТАК МНОГО - именно то, что я искал !!! – user3232090

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