Dear All, I want to depict flows: At point x there is an input of a units. at point y, b units arrive. Obviously, the line thicknes can be manipulated with (a constant) cex. But I want the thickness to change linearly from?~a in x to ~b in y. Is there an out of the box solution for this? Thank you in advance! Yours, Ferri
Hmm... I don't recall whether this has been packaged up, but Paul Murrell talked about it at useR in Brisbane. https://www.youtube.com/watch?v=L6FawdEA3W0 -pd> On 11 Nov 2018, at 11:44 , Ferri Leberl <ferri.leberl at gmx.at> wrote: > > > Dear All, > I want to depict flows: At point x there is an input of a units. at point y, b units arrive. > Obviously, the line thicknes can be manipulated with (a constant) cex. But I want the thickness to change linearly from ~a in x to ~b in y. > Is there an out of the box solution for this? > Thank you in advance! > Yours, Ferri > > ______________________________________________ > R-help at 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.-- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
Ferri Leberl
2018-Nov-11 16:30 UTC
[R] Line with linearly changing thickness – installation issues
Dear All, Thanks to Peter for his hint to the lwline package. As a pitty, I have difficulties to get it installed, as it requires https://github.com/Gibbsdavidl/twine which failes for me. install_github("git at github.com:Gibbsdavidl/twine.git") ? ends with ** building package indices Error in read.table(zfile, header = TRUE, as.is = FALSE) : more columns than column names ERROR: installing package indices failed * removing ?/usr/local/lib/R/site-library/twine? Fehler in i.p(...) : (konvertiert von Warnung) installation of package ?/tmp/RtmpD3exKe/file730c303b4c3/twine_0.1.tar.gz? had non-zero exit status I found hints like https://community.rstudio.com/t/lazydata-failed-for-for-package/4196 and https://stat.ethz.ch/pipermail/r-help/2011-March/272829.html that boil down to problems within the data subdir of the project ? but I cannot (and should not) edit the project, can I? Can anybody help me solving the problem? Thank you in advance! Yours, Ferri ? Gesendet:?Sonntag, 11. November 2018 um 15:38 Uhr Von:?"Peter Dalgaard" <pdalgd at gmail.com> An:?"Ferri Leberl" <ferri.leberl at gmx.at> Cc:?r-help at r-project.org Betreff:?Re: [R] Line with linearly changing thickness Hmm... I don't recall whether this has been packaged up, but Paul Murrell talked about it at useR in Brisbane. https://www.youtube.com/watch?v=L6FawdEA3W0 -pd> On 11 Nov 2018, at 11:44 , Ferri Leberl <ferri.leberl at gmx.at> wrote: > > > Dear All, > I want to depict flows: At point x there is an input of a units. at point y, b units arrive. > Obviously, the line thicknes can be manipulated with (a constant) cex. But I want the thickness to change linearly from ~a in x to ~b in y. > Is there an out of the box solution for this? > Thank you in advance! > Yours, Ferri > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help[https://stat.ethz.ch/mailman/listinfo/r-help] > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html[http://www.R-project.org/posting-guide.html] > and provide commented, minimal, self-contained, reproducible code.-- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com ?
Fox, John
2018-Nov-11 18:29 UTC
[R] Line with linearly changing thickness – installation issues
Dear David and Ferri, Here's a simple implementation using polygon() (as David suggested). It's much less sophisticated than Paul Murrell's -- in particular, the ends of the line are simply vertical (but, with a bit more work, that too could be addressed) -- and uses standard R graphics rather than grid. tline <- function(x, y, thickness, col="black", unit=0.005){ # line of varying thickness # x: vector of x coordinates # y: vector of y coordinates # thickness: units of thickness at each set of coordinates # col: line colour # unit: unit of thickness as fraction of vertical axis tl <- function(x1, x2, y1, y2, start, end){ polygon(x=c(x1, x1, x2, x2, x1), y=c(y1 - start*units, y1 + start*units, y2 + end*units, y2 - end*units, y1 - start*units), col=col, border=col) } if (length(x) != length(y)) "x and y are of different lengths" if (length(x) != length(thickness)) "length of thickness is different from x and y" if (length(x) < 2) "x and y are too short" usr <- par("usr") units <- (usr[4] - usr[3])*unit/2 for (i in 2:length(x)){ tl(x[i - 1], x[i], y[i - 1], y[i], thickness[i - 1], thickness[i]) } } # example: plot(c(-1, 1), c(0, 100), type="n") tline(seq(-1, 1, by=0.1), y=(seq(1, 9.5, length=21))^2, thickness=seq(1, 20, length=21), col="blue") I hope this helps, John -------------------------------------- John Fox, Professor Emeritus McMaster University Hamilton, Ontario, Canada Web: socialsciences.mcmaster.ca/jfox/> -----Original Message----- > From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of David > Winsemius > Sent: Sunday, November 11, 2018 12:23 PM > To: r-help at r-project.org > Subject: Re: [R] Line with linearly changing thickness ? installation > issues > > I would have imagined that drawing a polygon would be the way most > people would have attempted. > > Regarding Murrell's package: > > I thought the package name was "vwline". My attempt to install was > unsuccessful> > > > devtools::install_github("pmur002/vwline") > Error in utils::download.file(url, path, method = download_method(), > quiet = quiet,? : > ? cannot open URL > 'https://api.github.com/repos/pmur002/vwline/contents/DESCRIPTION?ref=ma > ster' > > install.packages("~/vwline-0.2-1.tar.gz", repo=NULL) Installing > package into ?/home/david/R/x86_64-pc-linux-gnu-library/3.5.1? > (as ?lib? is unspecified) > Warning in untar2(tarfile, files, list, exdir, restore_times) : > ? skipping pax global extended headers > ERROR: cannot extract package from ?/home/david/vwline-0.2-1.tar.gz? > Warning in install.packages : > ? installation of package ?/home/david/vwline-0.2-1.tar.gz? had non- > zero exit status > > > Furthermore, I do get the same error from attempting to install > pkg:twine from github. > > -- David > > Doing this from an Rstudio console running R 3.5.1 in Ubuntu 18.04 > > On 11/11/18 8:30 AM, Ferri Leberl wrote: > > Dear All, > > Thanks to Peter for his hint to the lwline package. > > As a pitty, I have difficulties to get it installed, as it requires > https://github.com/Gibbsdavidl/twine which failes for me. > > > > install_github("git at github.com:Gibbsdavidl/twine.git") > > > > ends with > > > > ** building package indices > > Error in read.table(zfile, header = TRUE, as.is = FALSE) : > > more columns than column names > > ERROR: installing package indices failed > > * removing ?/usr/local/lib/R/site-library/twine? > > Fehler in i.p(...) : > > (konvertiert von Warnung) installation of package > > ?/tmp/RtmpD3exKe/file730c303b4c3/twine_0.1.tar.gz? had non-zero exit > > status > > > > I found hints like > > https://community.rstudio.com/t/lazydata-failed-for-for-package/4196 > > and https://stat.ethz.ch/pipermail/r-help/2011-March/272829.html > > that boil down to problems within the data subdir of the project ? but > I cannot (and should not) edit the project, can I? > > > > Can anybody help me solving the problem? > > Thank you in advance! > > Yours, Ferri > > > > > > > > Gesendet:?Sonntag, 11. November 2018 um 15:38 Uhr > > Von:?"Peter Dalgaard" <pdalgd at gmail.com> > > An:?"Ferri Leberl" <ferri.leberl at gmx.at> > > Cc:?r-help at r-project.org > > Betreff:?Re: [R] Line with linearly changing thickness Hmm... I don't > > recall whether this has been packaged up, but Paul Murrell talked > about it at useR in Brisbane. > > > > https://www.youtube.com/watch?v=L6FawdEA3W0 > > > > -pd > > > >> On 11 Nov 2018, at 11:44 , Ferri Leberl <ferri.leberl at gmx.at> wrote: > >> > >> > >> Dear All, > >> I want to depict flows: At point x there is an input of a units. at > point y, b units arrive. > >> Obviously, the line thicknes can be manipulated with (a constant) > cex. But I want the thickness to change linearly from ~a in x to ~b in > y. > >> Is there an out of the box solution for this? > >> Thank you in advance! > >> Yours, Ferri > >> > >> ______________________________________________ > >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> https://stat.ethz.ch/mailman/listinfo/r-help[https://stat.ethz.ch/mai > >> lman/listinfo/r-help] PLEASE do read the posting guide > >> http://www.R-project.org/posting-guide.html[http://www.R-project.org/ > >> posting-guide.html] and provide commented, minimal, self-contained, > >> reproducible code. > > -- > > Peter Dalgaard, Professor, > > Center for Statistics, Copenhagen Business School Solbjerg Plads 3, > > 2000 Frederiksberg, Denmark > > Phone: (+45)38153501 > > Office: A 4.23 > > Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com > > > > > > > > > > > > > > > > > > > > > > ______________________________________________ > > R-help at 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. > > ______________________________________________ > R-help at 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.
Fox, John
2018-Nov-11 19:53 UTC
[R] Line with linearly changing thickness – installation issues
And here's a simpler, loopless version: tlines <- function(x, y, thickness, col="black", unit=0.005){ # line of varying thickness # x: vector of x coordinates # y: vector of y coordinates # thickness: units of thickness at each set of coordinates # col: line colour # unit: unit of thickness as fraction of vertical axis if (length(x) != length(y)) "x and y are of different lengths" if (length(x) != length(thickness)) "length of thickness is different from x and y" if (length(x) < 2) "x and y are too short" usr <- par("usr") units <- (usr[4] - usr[3])*unit/2 x <- c(x, rev(x)) y <- c(y + thickness*units, rev(y) - rev(thickness)*units) polygon(x=x, y=y, col=col, border=col) } Best, John> -----Original Message----- > From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Fox, John > Sent: Sunday, November 11, 2018 1:30 PM > To: David Winsemius <dwinsemius at comcast.net>; Ferri Leberl > <ferri.leberl at gmx.at> > Cc: r-help at r-project.org > Subject: Re: [R] Line with linearly changing thickness ? installation issues > > Dear David and Ferri, > > Here's a simple implementation using polygon() (as David suggested). It's > much less sophisticated than Paul Murrell's -- in particular, the ends of the line > are simply vertical (but, with a bit more work, that too could be addressed) -- > and uses standard R graphics rather than grid. > > tline <- function(x, y, thickness, col="black", unit=0.005){ > # line of varying thickness > # x: vector of x coordinates > # y: vector of y coordinates > # thickness: units of thickness at each set of coordinates > # col: line colour > # unit: unit of thickness as fraction of vertical axis > tl <- function(x1, x2, y1, y2, start, end){ > polygon(x=c(x1, x1, x2, x2, x1), > y=c(y1 - start*units, y1 + start*units, > y2 + end*units, y2 - end*units, > y1 - start*units), > col=col, border=col) > } > if (length(x) != length(y)) "x and y are of different lengths" > if (length(x) != length(thickness)) > "length of thickness is different from x and y" > if (length(x) < 2) "x and y are too short" > usr <- par("usr") > units <- (usr[4] - usr[3])*unit/2 > for (i in 2:length(x)){ > tl(x[i - 1], x[i], y[i - 1], y[i], thickness[i - 1], thickness[i]) > } > } > > # example: > > plot(c(-1, 1), c(0, 100), type="n") > tline(seq(-1, 1, by=0.1), y=(seq(1, 9.5, length=21))^2, > thickness=seq(1, 20, length=21), col="blue") > > I hope this helps, > John > > -------------------------------------- > John Fox, Professor Emeritus > McMaster University > Hamilton, Ontario, Canada > Web: socialsciences.mcmaster.ca/jfox/ > > > > > -----Original Message----- > > From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of David > > Winsemius > > Sent: Sunday, November 11, 2018 12:23 PM > > To: r-help at r-project.org > > Subject: Re: [R] Line with linearly changing thickness ? installation > > issues > > > > I would have imagined that drawing a polygon would be the way most > > people would have attempted. > > > > Regarding Murrell's package: > > > > I thought the package name was "vwline". My attempt to install was > > unsuccessful> > > > > > devtools::install_github("pmur002/vwline") > > Error in utils::download.file(url, path, method = download_method(), > > quiet = quiet,? : > > ? cannot open URL > > 'https://api.github.com/repos/pmur002/vwline/contents/DESCRIPTION?ref> > ma > > ster' > > > install.packages("~/vwline-0.2-1.tar.gz", repo=NULL) Installing > > package into ?/home/david/R/x86_64-pc-linux-gnu-library/3.5.1? > > (as ?lib? is unspecified) > > Warning in untar2(tarfile, files, list, exdir, restore_times) : > > ? skipping pax global extended headers > > ERROR: cannot extract package from ?/home/david/vwline-0.2-1.tar.gz? > > Warning in install.packages : > > ? installation of package ?/home/david/vwline-0.2-1.tar.gz? had non- > > zero exit status > > > > > > Furthermore, I do get the same error from attempting to install > > pkg:twine from github. > > > > -- David > > > > Doing this from an Rstudio console running R 3.5.1 in Ubuntu 18.04 > > > > On 11/11/18 8:30 AM, Ferri Leberl wrote: > > > Dear All, > > > Thanks to Peter for his hint to the lwline package. > > > As a pitty, I have difficulties to get it installed, as it requires > > https://github.com/Gibbsdavidl/twine which failes for me. > > > > > > install_github("git at github.com:Gibbsdavidl/twine.git") > > > > > > ends with > > > > > > ** building package indices > > > Error in read.table(zfile, header = TRUE, as.is = FALSE) : > > > more columns than column names > > > ERROR: installing package indices failed > > > * removing ?/usr/local/lib/R/site-library/twine? > > > Fehler in i.p(...) : > > > (konvertiert von Warnung) installation of package > > > ?/tmp/RtmpD3exKe/file730c303b4c3/twine_0.1.tar.gz? had non-zero exit > > > status > > > > > > I found hints like > > > https://community.rstudio.com/t/lazydata-failed-for-for-package/4196 > > > and https://stat.ethz.ch/pipermail/r-help/2011-March/272829.html > > > that boil down to problems within the data subdir of the project ? > > > but > > I cannot (and should not) edit the project, can I? > > > > > > Can anybody help me solving the problem? > > > Thank you in advance! > > > Yours, Ferri > > > > > > > > > > > > Gesendet:?Sonntag, 11. November 2018 um 15:38 Uhr > > > Von:?"Peter Dalgaard" <pdalgd at gmail.com> > > > An:?"Ferri Leberl" <ferri.leberl at gmx.at> > > > Cc:?r-help at r-project.org > > > Betreff:?Re: [R] Line with linearly changing thickness Hmm... I > > > don't recall whether this has been packaged up, but Paul Murrell > > > talked > > about it at useR in Brisbane. > > > > > > https://www.youtube.com/watch?v=L6FawdEA3W0 > > > > > > -pd > > > > > >> On 11 Nov 2018, at 11:44 , Ferri Leberl <ferri.leberl at gmx.at> wrote: > > >> > > >> > > >> Dear All, > > >> I want to depict flows: At point x there is an input of a units. at > > point y, b units arrive. > > >> Obviously, the line thicknes can be manipulated with (a constant) > > cex. But I want the thickness to change linearly from ~a in x to ~b in > > y. > > >> Is there an out of the box solution for this? > > >> Thank you in advance! > > >> Yours, Ferri > > >> > > >> ______________________________________________ > > >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > > >> https://stat.ethz.ch/mailman/listinfo/r-help[https://stat.ethz.ch/m > > >> ai lman/listinfo/r-help] PLEASE do read the posting guide > > >> http://www.R-project.org/posting-guide.html[http://www.R-project.or > > >> g/ posting-guide.html] and provide commented, minimal, > > >> self-contained, reproducible code. > > > -- > > > Peter Dalgaard, Professor, > > > Center for Statistics, Copenhagen Business School Solbjerg Plads 3, > > > 2000 Frederiksberg, Denmark > > > Phone: (+45)38153501 > > > Office: A 4.23 > > > Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ______________________________________________ > > > R-help at 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. > > > > ______________________________________________ > > R-help at 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. > ______________________________________________ > R-help at 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.