Hello everyone,

I want to fit power-law model through log transformation. I tried with r base plot. However, now I need it by ggplot2. Can anybody help me?

VPD: independent variable ranges from 0 to 1.5 like 0.4,0.32 and so on

X1: ranges from 50 to 300 like 55,170,225 and so on

Model1=lm(log(Merged$X1)~log(Merged$VPD))

summary(Model1)

plot(Merged$X1~Merged$VPD)

xv<-seq(0.15,1.1,0.1)

yv<-exp(5.67775)*xv^0.36681 # model1 fit: intercept&slope from Model1 (Y=aX^b)

lines(xv,yv,col=2,lwd=1,lty=1)

text(0.75,155,expression("Upland, p<0.001," ~ R^2~ "=0.69"),cex=0.8)

See the FAQ: How to do a minimal reproducible example `reprex`

for beginners for the preferred way to ask coding questions.

```
suppressPackageStartupMessages({
library(ggplot2)
})
# generate fake data
set.seed(137)
VPD <- sample(seq(0, 1.5, 0.01), 500, replace = TRUE)
X1 <- sample(seq(50, 300, 5), 500, replace = TRUE)
Merged <- data.frame(VPD = VPD, X1 = X1)
# data from post
xv <- seq(0.15, 1.1, 0.1)
yv <- exp(5.67775) * xv^0.36681
obj <- data.frame(xv = xv, yv = yv)
# base graphics
plot(X1 ~ VPD)
lines(xv, yv, col = 2, lwd = 1, lty = 1)
```

```
# ggplot
p <- ggplot(Merged,aes(VPD,X1)) +
geom_point() +
geom_line(obj,mapping = aes(xv,yv), color = "red", size = 1.5) +
theme_minimal()
p
```

Thank you. It works now.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.