[R] single strip for the same group in dotplot lattice

Luigi Marongiu marongiu.luigi at gmail.com
Thu Feb 23 10:00:59 CET 2017


Dear Duncan and Philip,
thank you for your answers. maybe the toy data I gave it is a bit too easy,
so I am attaching a new dataset with 5 targets. As you can see from it, now
there are 5 panel strips with the label "run_1" and 5 with the label
"run_2". What I would like to do is to merge those with the same label so
to have only two labels "run_1" and "run_2".
the examples from Duncan contains plenty of keys but I think make the
reading of the plot more difficult; most of the plots have only one strip.
thank you
luigi

>>>
# the values are actually repeated, but they are just for example
cluster <- c(rep("run_1", 45), rep("run_2", 45))
type <- rep(c("blank", "positive", "negative"),30)
target <- rep(c(rep("A", 3), rep("B", 3), rep("C", 3), rep("D", 3),
rep("E", 3)), 6)
value <- rep(c(rnorm(1, mean=0.001, sd=0.1), rnorm(1, mean=2, sd=1),
rnorm(1, mean=1, sd=1)),30)
my.data <- data.frame(cluster, type, target, value)

library(lattice)
dotplot(
  value ~ type|target + cluster,
  my.data,
  groups = type,
  pch=21,
  main = "Luminex analysis MTb humans",
  xlab = "Target", ylab = "Reading",
  col = c("grey", "green", "red"),
  par.settings = list(strip.background = list(col="paleturquoise")),
  scales = list(alternating = FALSE, x = list(labels = c("", "", ""))),
  key = list(
    space = "top",
    columns = 3,
    text = list(c("Blank", "Negative", "Positive"), col="black"),
    rectangles = list(col=c("grey", "green", "red"))
  )
)


On Thu, Feb 23, 2017 at 2:50 AM, Duncan Mackay <dulcalma at bigpond.com> wrote:

> Hi Liugi
>
> Here are some ideas quickly
>
> 4 panels diagonals are blank
>
> mdata = my.data
> mdata$ct <- paste(target, "Run", rep(1:2, each = 6))
> mdata$typeT <- paste(mdata$target,mdata$type)
>
> dotplot(
>   value ~ type|ct,
>   mdata2,
>   groups = typeT,
>   par.settings = list(strip.background = list(col="paleturquoise"),
>                       superpose.symbol = list(col = c(2:4),
>                                               pch = rep(c(1,20),each =
> 3))),
> # type
>   scales = list(alternating = FALSE, x = list(labels = c("", "", ""))),
>   main = "Luminex analysis MTb humans",
>   xlab = "Target",
>   ylab = "Reading",
>   auto.key = T,
>   panel = panel.superpose
> )
>
> # for when the 4 panels have plots not 2 as now
>  mdata2 = mdata
>  mdata2$target = rep(LETTERS[2:1], ea=6)
>  mdata2$value= mdata2$value+0.1
>  mdata2 <- rbind(mdata,mdata2)
>
> mdata2$typeT <- paste(mdata2$target,mdata2$type)
>
>  dotplot(
>    value ~ type|target + cluster,
>    mdata2,
>    groups = typeT,
>    par.settings = list(strip.background = list(col="paleturquoise"),
>                        superpose.symbol = list(col = c(2:4),
>                                                pch = rep(c(1,20),each =
> 3))), # type
>    scales = list(alternating = FALSE, x = list(labels = c("", "", ""))),
>    main = "Luminex analysis MTb humans",
>    xlab = "Target",
>    ylab = "Reading",
>    auto.key = T,
>    panel = panel.superpose
>  )
>
>
>  dotplot(
>    value ~ type|ct,
>    mdata2,
>    groups = typeT,
>    par.settings = list(strip.background = list(col="paleturquoise"),
>                        superpose.symbol = list(col = c(2:4),
>                                                pch = rep(c(1,20),each =
> 3))), # type
>    scales = list(alternating = FALSE, x = list(labels = c("", "", ""))),
>    main = "Luminex analysis MTb humans",
>    strip    = strip.custom(factor.levels = paste("Run",1:2),
>                         par.strip.text = list(cex = 1) ),
>    xlab = "Target",
>    ylab = "Reading",
>    auto.key = T,
>    panel = panel.superpose
>  )
>
> dotplot(
>   value ~ type|cluster,
>   mdata2,
>   groups = typeT,
>   par.settings = list(strip.background = list(col="paleturquoise"),
>                       superpose.symbol = list(col = c(2:4),
>                                               pch = rep(c(1,20),each =
> 3))),
> # type
>   scales = list(alternating = FALSE, x = list(labels = c("", "", ""))),
>   main = "Luminex analysis MTb humans",
>   xlab = "Target",
>   ylab = "Reading",
>   auto.key = T,
>   panel = panel.superpose
> )
>
>
> Regards
>
> Duncan
>
> -----Original Message-----
> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Luigi
> Marongiu
> Sent: Wednesday, 22 February 2017 21:26
> To: P Tennant; r-help
> Subject: Re: [R] single strip for the same group in dotplot lattice
>
> Dear Philip,
> the data is indeed a toy data: the real one will have 15 panels (=targets)
> and two or three clusters. this means that I will have 15 strips with the
> label "run 1" = "cluster 1" etc. the point of the toy data is that I get a
> 4x4 panel plot with 8 strips labelled "run 1", "run 2", "A" and "B". What I
> am looking for is to collapse the strips so to get only one label "run 1"
> and only one with "run 2" in order to simplify the plot. Hope this helps.
> Thanks
> Luigi
>
> On Wed, Feb 22, 2017 at 9:53 AM, P Tennant <philipt900 at iinet.net.au>
> wrote:
>
> > Hi Luigi,
> >
> > I'm afraid I don't understand your toy data as you've described it, but
> if
> > you really don't have run 2 for target A, and don't have run 1 for target
> > B, why not just create another factor that reflects this, and plot that?
> >
> >  my.data$clus2 <- with(my.data, interaction(cluster, target))
> >
> >  and call: dotplot(value ~ type| clus2, ... )
> >
> >
> > Philip
> >
> >
> > On 22/02/2017 8:03 PM, Luigi Marongiu wrote:
> >
> >> dear all,
> >> I have a set of data that is subdivided in cluster (run 1/run 2) and in
> >> target (A/B). When plotting, I obtain a panel strip with "run 1" and
> "run
> >> 2" for each "A" and "B" panel, so "run 1" appears twice and so does "run
> >> 2". It is possible to merge the strip together so that I will have "run
> 1"
> >> or "run 2" only once? this will reduce the complexity of the data and
> >> allow
> >> more space for more detailed information in the strip.
> >> the data follows,
> >> thank you
> >> L
> >>
> >> cluster<- c(rep("run_1", 6), rep("run_2", 6))
> >> type<- rep(c("blank", "positive", "negative"),2)
> >> target<- c(rep("A", 6), rep("B", 6))
> >> value<- c(0.01, 1.1, 0.5,
> >>             0.02, 1.6, 0.8,
> >>             0.07, 1.4, 0.7,
> >>             0.03, 1.4, 0.4)
> >> my.data<- data.frame(cluster, type, target, value)
> >>
> >> library(lattice)
> >> dotplot(
> >>    value ~ type|target + cluster,
> >>    my.data,
> >>    groups = type,
> >>    pch=21,
> >>    main = "Luminex analysis MTb humans",
> >>    xlab = "Target", ylab = "Reading",
> >>    col = c("grey", "green", "red"),
> >>    par.settings = list(strip.background = list(col="paleturquoise")),
> >>    scales = list(alternating = FALSE, x = list(labels = c("", "", ""))),
> >>    key = list(
> >>      space = "top",
> >>      columns = 3,
> >>      text = list(c("Blank", "Negative", "Positive"), col="black"),
> >>      rectangles = list(col=c("grey", "green", "red"))
> >>    )
> >> )
> >>
> >>         [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> 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/posti
> >> ng-guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
> >>
> >
> >
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list