Hi, It's because you are plotting a line between each of the points in your data frame, and they are very close together:
> cbind(df1$B,predict(regressor,df1)) [,1] [,2] 1 1.410832 -13.96466 2 1.589383 -15.21169 3 1.446662 -14.21491 4 1.488665 -14.50826 5 1.487035 -14.49687 6 1.497347 -14.56890 7 1.458070 -14.29458 8 1.568134 -15.06328 9 1.543364 -14.89029 10 1.513473 -14.68152 11 1.465462 -14.34621 12 1.506752 -14.63458 13 1.434703 -14.13139 14 1.584011 -15.17417 15 1.585621 -15.18542 16 1.542410 -14.88362 17 1.430091 -14.09917 18 1.474529 -14.40953 19 1.431341 -14.10790 20 1.425015 -14.06372 If instead you use abline(regressor, lty=2) you will get a nice-looking dashed line. Or, if you want only the data extent, you could use just the points for the minimum and maximum values of x. Sarah On Mon, Dec 4, 2017 at 12:13 PM, jean-philippe <jeanphilippe.fonta...@gssi.infn.it> wrote: > dear R users, > > I am performing a linear regression with lm, and I would like to plot the > regressor in dashed lines. I know that the lty=2 option is the way out, but > it has a very strange behaviour: the line starts dashed but then the spaces > between each dash becomes very tiny and so the line become somehow > continuous for the human eye. Do you know how to fix that problem, in order > to have a dashed line with big enough spaces between the dashes? > Here is a MWE (don't mind if clearly a linear model will not fit these "fake > randomly generated" data). > > Also, changing the plot(...,type="l") to abline(regressor,lty=2,...) helps > and draw a pure dashed line but it is impossible to force it to stay in the > bounds of the data. > Changing to line instead shows the same problem as mentioned here in the > MWE. > > > pdf("reproducableex.pdf") > df1<-data.frame(B=runif(20,1.4,1.6),A=runif(20,-19.5,-9.8)) > regressor<-lm(A~B,data = df1) > plot(df1$B,predict(regressor,df1),type="l", col="black", > mgp=c(2,0.5,0),cex.lab=1.6, lwd=2, > lty=2,xlim=range(c(1.2,1.7)),ylim=rev(range(c(-19,-8)))) > par(new = TRUE) > plot(df1$B,as.numeric(df1$A),type="p", col="black", > mgp=c(2,0.5,0),cex.lab=1.6,cex=2, xlab = "", ylab = > "",xlim=range(c(1.2,1.7)),ylim=rev(range(c(-19,-8))),pch=17) > box(lwd=3) > dev.off() > > > Thanks in advance, best regards > > > Jean-Philippe Fontaine > -- Sarah Goslee http://www.functionaldiversity.org ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.