Hello All,

I have plotted a scatter plot in ggplot2 and added a regression line and a
regression equation. But the processing is very very slow. One reason might
be because I have so many data pairs. Is there any way to speed up this
code ? I need to create a multiple layout as well.

The code I have used is as follows:

setwd("C:/Users/jzd0009/Documents/R software")
mydata <- read.table("dataset.csv",header=TRUE,sep=",")
library(ggplot2)
p <-
ggplot(mydata,aes(date))+geom_line(aes(y=modeled,colour="modeled"))+geom_line(aes(y=observed,colour="observed"))
p


p1 <- ggplot(mydata, aes(modeled,observed))+geom_point(aes(y=observed))
#p1 <- p1+stat_smooth()

lm_eqn = function(mydata){
  m = lm(modeled ~ observed, mydata);
  eq <- substitute(italic(y) == a + b %.%
italic(x)*","~~italic(r)^2~"="~r2,
                   list(a = format(coef(m)[1], digits = 2),
                        b = format(coef(m)[2], digits = 2),
                        r2 = format(summary(m)$r.squared, digits = 3)))
  as.character(as.expression(eq));
}
p1 <- p1 + geom_text(aes(x = -0.1, y = 0.5, label = lm_eqn(mydata)), parse
= TRUE)
p1 <- p1+geom_smooth(method="lm",se=FALSE,color="green",formula=y~x,lwd=2)
p1

#For multiple layout

library(grid)
grid.newpage()
pushViewport(viewport(layout=grid.layout(2,2)))
vplayout <- function(x,y)
viewport(layout.pos.row=x,layout.pos.col=y)
print(p,vp=vplayout(1,1))
print(p1,vp=vplayout(1,2))
print(p,vp=vplayout(2,1))
print(p1,vp=vplayout(2,2))


The data for the above code can be found on
https://www.dropbox.com/s/1xrgvnge0prf0a6/dataset.csv

Thank you so much.

Best Regards,
Janesh Devkota

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to