Hi, Paul, Thank you very much for your reply. I tried your sample code, but did not get gradient filling (still empty box). And many warnings:1: In checkAttrs(attrs, eltName) : ? Removing non-SVG attribute name(s): fill, fill-opacity 2: In checkAttrs(attrs, eltName) : ? Removing non-SVG attribute name(s): fill, fill-opacity 3: In checkAttrs(attrs, eltName) : ? Removing non-SVG attribute name(s): fill, fill-opacity 4: In checkAttrs(attrs, eltName) : ? Removing non-SVG attribute name(s): fill, fill-opacity 5: In checkAttrs(attrs, eltName) : ... I saw the figure in an article, and so I don't have to script. I am actually trying to generate the similar figure for my own data. Any other thoughts? Thanks. Ace On Tuesday, December 6, 2016 7:43 PM, Paul Murrell <paul at stat.auckland.ac.nz> wrote: Hi 'gridSVG' might be one way to get this.? For example ... library(lattice) # Draw boxplot (with a package that sits on top of 'grid') bwplot(voice.part ~ height, data=singer, xlab="Height (inches)", ? ? ? ? horizontal=FALSE) library(grid) grid.ls() # Looks like boxes are called <blah>bwplot.box.polygon<blah> library(gridSVG) # Define linear gradient fill <- linearGradient(c("blue", "red"), ? ? ? ? ? ? ? ? ? ? ? ? x0=.5, x1=.5, ? ? ? ? ? ? ? ? ? ? ? ? gradientUnits="coords") # Register gradient now so it applies to the whole page registerGradientFill("br", fill) # Fill each box with gradient grid.gradientFill("bwplot.box.polygon", label=rep("br", 17), grep=TRUE, ? ? ? ? ? ? ? ? ? group=FALSE) # Generate SVG version "Rplots.svg" # (where the gradient will actually be visible) grid.export() Does that help ? Paul On 07/12/16 09:14, Fix Ace wrote:> Hello, there, > I will like to fill the boxplot with gradient color, as exampled below: > > Can anyone help me figure out what package I should go with? > Thank you very much for any inputs! > Kind regards, > Ace > > > > ______________________________________________ > 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. >-- Dr Paul Murrell Department of Statistics The University of Auckland Private Bag 92019 Auckland New Zealand 64 9 3737599 x85392 paul at stat.auckland.ac.nz http://www.stat.auckland.ac.nz/~paul/ [[alternative HTML version deleted]]
Hi You could try ... grid.export(..., strict=FALSE) ... and/or install the latest gridSVG version from R-Forge ... https://r-forge.r-project.org/R/?group_id=1025 Paul On 09/12/16 11:13, Fix Ace wrote:> Hi, Paul, > > Thank you very much for your reply. I tried your sample code, but did > not get gradient filling (still empty box). And many warnings: > 1: In checkAttrs(attrs, eltName) : > Removing non-SVG attribute name(s): fill, fill-opacity > 2: In checkAttrs(attrs, eltName) : > Removing non-SVG attribute name(s): fill, fill-opacity > 3: In checkAttrs(attrs, eltName) : > Removing non-SVG attribute name(s): fill, fill-opacity > 4: In checkAttrs(attrs, eltName) : > Removing non-SVG attribute name(s): fill, fill-opacity > 5: In checkAttrs(attrs, eltName) : > . > . > . > > I saw the figure in an article, and so I don't have to script. I am > actually trying to generate the similar figure for my own data. > > Any other thoughts? > > Thanks. > > Ace > > > On Tuesday, December 6, 2016 7:43 PM, Paul Murrell > <paul at stat.auckland.ac.nz> wrote: > > > Hi > > 'gridSVG' might be one way to get this. For example ... > > library(lattice) > # Draw boxplot (with a package that sits on top of 'grid') > bwplot(voice.part ~ height, data=singer, xlab="Height (inches)", > horizontal=FALSE) > > library(grid) > grid.ls() > # Looks like boxes are called <blah>bwplot.box.polygon<blah> > > library(gridSVG) > # Define linear gradient > fill <- linearGradient(c("blue", "red"), > x0=.5, x1=.5, > gradientUnits="coords") > # Register gradient now so it applies to the whole page > registerGradientFill("br", fill) > # Fill each box with gradient > grid.gradientFill("bwplot.box.polygon", label=rep("br", 17), grep=TRUE, > group=FALSE) > # Generate SVG version "Rplots.svg" > # (where the gradient will actually be visible) > grid.export() > > Does that help ? > > Paul > > On 07/12/16 09:14, Fix Ace wrote: >> Hello, there, >> I will like to fill the boxplot with gradient color, as exampled below: >> >> Can anyone help me figure out what package I should go with? >> Thank you very much for any inputs! >> Kind regards, >> Ace > >> >> >> >> ______________________________________________ >> R-help at r-project.org <mailto: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 > <http://www.r-project.org/posting-guide.html> >> and provide commented, minimal, self-contained, reproducible code. >> > > -- > Dr Paul Murrell > Department of Statistics > The University of Auckland > Private Bag 92019 > Auckland > New Zealand > 64 9 3737599 x85392 > paul at stat.auckland.ac.nz <mailto:paul at stat.auckland.ac.nz> > http://www.stat.auckland.ac.nz/~paul/ > > >-- Dr Paul Murrell Department of Statistics The University of Auckland Private Bag 92019 Auckland New Zealand 64 9 3737599 x85392 paul at stat.auckland.ac.nz http://www.stat.auckland.ac.nz/~paul/
Hi, Paul, Thank you very much! It works this time with "strict=FALSE" option. Another relevant question: how did you figure out? that boxes in boxplot are called "bwplot.box.polygon". If I am trying to make a gradient filling for barplot of other plots, how would I define grobs? Thanks!! Ace On Thursday, December 8, 2016 5:24 PM, Paul Murrell <paul at stat.auckland.ac.nz> wrote: Hi You could try ... grid.export(..., strict=FALSE) ... and/or install the latest gridSVG version from R-Forge ... https://r-forge.r-project.org/R/?group_id=1025 Paul [[alternative HTML version deleted]]