> On Sep 15, 2018, at 1:27 PM, Aimin Yan <aimin.at.w...@gmail.com> wrote:
> 
> Thank you, I tried your code, but I still got error:
> 
>   fit1 <- euler(c("ciLAD" = 785, "LAD" = 565, "nonXL_MEF" = 167,
>                     "ciLAD&LAD" = 3, "ciLAD&nonXL_MEF" = 101, "LAD&nonXL_MEF" 
> = 541,
>                     "ciLAD&LAD&nonXL_MEF" = 2),shape = "ellipse")
>     
>     fit1.plot <- plot(fit1,quantities = TRUE,fill = rainbow(7),lty = 
> 1:2,labels = list(font = 1),alpha=0.7)
>     fit1.plot
>     grid.ls(fit1.plot)

I don't think you are editing the right object (and I don't think you have 
honored my prior efforts to get you to read the documentation for the grid 
package):

names(fit1.plot)
#[1] "name"          "gp"            "vp"            "children"      
"childrenOrder"
names(fit1.plot$children)
#[1] "GRID.gTree.12"
 names(fit1.plot$children$GRID.gTree.12)
#[1] "name"          "gp"            "vp"            "children"      
"childrenOrder"
 names(fit1.plot$children$GRID.gTree.12$children)
#[1] "diagram.grob.1"
 names(fit1.plot$children$GRID.gTree.12$children$diagram.grob.1)
#[1] "name"          "gp"            "vp"            "children"      
"childrenOrder"

 names()
 #[1] "fills.grob.1"    "fills.grob.2"    "fills.grob.3"    "fills.grob.4"    
"fills.grob.5"    "fills.grob.6"    "fills.grob.7"   
 #[8] "edges.grob"      "labels.grob"     "quantities.grob"

My suggested target for editing, in place, would be:

fit1.plot$children$GRID.gTree.12$children$diagram.grob.1$children$quantities.grob

str( 
fit1.plot$children$GRID.gTree.12$children$diagram.grob.1$children$quantities.grob
 )
#----------------------
List of 11
 $ label        : chr [1:7] "3" "101" "541" "2" ...
 $ x            : 'unit' num [1:7] -4.35native -11.01native 16.5native 
-4.01native -28.09native ...
  ..- attr(*, "valid.unit")= int 4
  ..- attr(*, "unit")= chr "native"
 $ y            : 'unit' num [1:7] -2.569native 15.889native 4.732native 
-0.788native -7.157native ...
  ..- attr(*, "valid.unit")= int 4
  ..- attr(*, "unit")= chr "native"
 $ just         : chr "centre"
 $ hjust        : NULL
 $ vjust        : num [1:7] 0.5 0.5 0.5 0.5 1 1 1
 $ rot          : num [1:7] 0 0 0 0 0 0 0
 $ check.overlap: logi FALSE
 $ name         : chr "quantities.grob"
 $ gp           :List of 7
  ..$ col       : int [1:7] 1 1 1 1 1 1 1
  ..$ alpha     : num [1:7] 1 1 1 1 1 1 1
  ..$ fontsize  : num [1:7] 12 12 12 12 12 12 12
  ..$ cex       : num [1:7] 1 1 1 1 1 1 1
  ..$ fontfamily: chr [1:7] "" "" "" "" ...
  ..$ lineheight: num [1:7] 1.2 1.2 1.2 1.2 1.2 1.2 1.2
  ..$ font      : int [1:7] 1 1 1 1 1 1 1
  ..- attr(*, "class")= chr "gpar"
 $ vp           : NULL
 - attr(*, "class")= chr [1:3] "text" "grob" "gDesc"

 str( 
fit1.plot$children$GRID.gTree.12$children$diagram.grob.1$children$quantities.grob$x
 )
#----------
 'unit' num [1:7] -4.35native -11.01native 16.5native -4.01native -28.09native 
...
 - attr(*, "valid.unit")= int 4
 - attr(*, "unit")= chr "native"
#-------
 str( 
fit1.plot$children$GRID.gTree.12$children$diagram.grob.1$children$quantities.grob$y
 )
#________
 'unit' num [1:7] -2.569native 15.889native 4.732native -0.788native 
-7.157native ...
 - attr(*, "valid.unit")= int 4
 - attr(*, "unit")= chr "native"

-- 
David




>     t <- grid.get("quantities.grob")
>     names(t)
>     t$label
>     t$x
>     t$y
> 
>     # Try to change the x and y value of the 4th label "2"
>     grid.edit("quantities.grob",x[[4]]=unit(-11.8262244206465, "native"))
>     grid.edit("quantities.grob",y[[4]]=unit(-5.19720701058398, "native"))
> 
> Error: unexpected '=' in "grid.edit("quantities.grob",x[[4]]="
> 
> Aimin
> 
> On Fri, Sep 14, 2018 at 6:47 PM David Winsemius <dwinsem...@comcast.net> 
> wrote:
> 
> > On Sep 14, 2018, at 2:03 PM, Aimin Yan <aimin.at.w...@gmail.com> wrote:
> > 
> > Thank you,
> > 
> > I figure out a way like this:
> > 
> > fit1 <- euler(c("ciLAD" = 785, "LAD" = 565, "nonXL_MEF" = 167,
> >                     "ciLAD&LAD" = 3, "ciLAD&nonXL_MEF" = 101, 
> > "LAD&nonXL_MEF" = 541,
> >                     "ciLAD&LAD&nonXL_MEF" = 2),shape = "ellipse")
> >     
> > plot(fit1,quantities = TRUE,fill = rainbow(7),lty = 1:2,labels = list(font 
> > = 1),alpha=0.7)
> >    
> > grid.ls()
> > t <- grid.get("quantities.grob")
> > names(t)
> > 
> > # Change these value will change the location of label.
> >  
> > grid.edit("quantities.grob",x=unit.c(unit(-14.9884684724791, "native"),
> >                                          unit(-14.883684319653, "native"),
> >                                          unit(13.9805892820006, "native"),
> >                                          unit(-12.8808987356981, "native"),
> >                                          unit(-11.488226371243, "native"),
> >                                          unit(-9.51474016085318, "native"),
> >                                          unit(-1.00436055190216, "native")))
> >                 
> > grid.edit("quantities.grob",y=unit.c(unit(-8.07672595120493, "native"),
> >                                          unit(4.78718651828883, "native"),
> >                                          unit(0.25941593099694, "native"),
> >                                          unit(-4.32200781461293, "native"),
> >                                          unit(25.7349463488991, "native"),
> >                                          unit(-22.7610031110325, "native"),
> >                                          unit(14.5001560838519, "native")))
> > 
> > However, here I just want to change the x and y  value of 4th label, does 
> > anyone know how to set it?
> 
> If the t object were a complete grid object, it might have been:
> 
> grid.edit("quantities.grob", x[[4]]= unit(-12.8808987356981, "native")
>            )               
> grid.edit("quantities.grob", y[[4]]= unit(-4.32200781461293, "native"),
>            )
> 
> 
> But I don't think that will succeed since you never assigned the value of the 
> plot operation to a name. Instead you pulled out part of the grid object that 
> was sitting "free" and unassigned to a name. If you assign that value of 
> plot(....) to `my.plot` you get:
> 
>  grid.ls(my.plot)
> euler.diagram
>   GRID.gTree.11
>     diagram.grob.1
>       fills.grob.1
>       fills.grob.2
>       fills.grob.3
>       fills.grob.4
>       fills.grob.5
>       fills.grob.6
>       fills.grob.7
>       edges.grob
>       labels.grob
>       quantities.grob
> 
> I think you need to work with the tutorials in the grid package.
> 
> Look at:
> 
> help("grid-package")
> 
> -- 
> David.
> 
> > 
> > Aimin
> > 
> > On Thu, Sep 13, 2018 at 9:56 PM David Winsemius <dwinsem...@comcast.net> 
> > wrote:
> > 
> > > On Sep 13, 2018, at 2:31 PM, Aimin Yan <aimin.at.w...@gmail.com> wrote:
> > > 
> > > I am using eulerr to get venn.
> > > My code is like:
> > > 
> > > fit1 <- euler(c("ciLAD" = 785, "LAD" = 565, "nonXL_MEF" = 167,
> > >                    "ciLAD&LAD" = 3, "ciLAD&nonXL_MEF" = 101,
> > > "LAD&nonXL_MEF" = 541,
> > >                    "ciLAD&LAD&nonXL_MEF" = 2),shape = "ellipse")
> > > 
> > > plot(fit1,quantities = TRUE,fill = rainbow(7),lty = 1:2,labels = list(font
> > > = 1),alpha=0.7)
> > > 
> > > After I get the figure, I find the position of some  labels need to be
> > > adjusted.
> > > 
> > > Does anyone has some idea about how to process this?
> > 
> > Looking at the code of plot.euler we see that the plotting paradigm is 
> > grid. So you could assign the output to a data.object name, search for list 
> > items that match the names of the labels you want to reposition, and modify 
> > the position values. You would need to be more specific, if you want a 
> > worked example.
> > 
> > As far as I can see the lables and postions are fairly deep inside a list 
> > structure:
> > 
> >  $ children     :List of 1
> >   ..$ GRID.gTree.12:List of 5
> >   .. ..$ children
> >          $ diagram.grob.1     
> >             $children
> > .. .. .. .. ..$ labels.grob    :List of 11
> >   .. .. .. .. .. ..$ label        : chr [1:3] "ciLAD" "LAD" "nonXL_MEF"
> >   .. .. .. .. .. ..$ x            : 'unit' num [1:3] -18.1native 69.2native 
> > 11.9native
> >   .. .. .. .. .. .. ..- attr(*, "valid.unit")= int 4
> >   .. .. .. .. .. .. ..- attr(*, "unit")= chr "native"
> >   .. .. .. .. .. ..$ y            : 'unit' num [1:3] -17.86native 
> > 5.24native 27.86native
> >   .. .. .. .. .. .. ..- attr(*, "valid.unit")= int 4
> >   .. .. .. .. .. .. ..- attr(*, "unit")= chr "native"
> > 
> > -- 
> > David.
> > > 
> > > 
> > > Thank you,
> > > 
> > > Aimin
> > > 
> > >       [[alternative HTML version deleted]]
> > > 
> > > ______________________________________________
> > > 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.
> > 
> > David Winsemius
> > Alameda, CA, USA
> > 
> > 'Any technology distinguishable from magic is insufficiently advanced.'   
> > -Gehm's Corollary to Clarke's Third Law
> > 
> > 
> > 
> > 
> > 
> 
> David Winsemius
> Alameda, CA, USA
> 
> 'Any technology distinguishable from magic is insufficiently advanced.'   
> -Gehm's Corollary to Clarke's Third Law
> 
> 
> 
> 
> 

David Winsemius
Alameda, CA, USA

'Any technology distinguishable from magic is insufficiently advanced.'   
-Gehm's Corollary to Clarke's Third Law

______________________________________________
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.

Reply via email to