[R] Vertical boxplot with a continuous X axis

Sebastien Bihorel sebastien.bihorel at cognigencorp.com
Sat Feb 25 03:16:08 CET 2017


Thanks for your reply

----- Original Message -----
From: "Richard M. Heiberger" <rmh at temple.edu>
To: "Sebastien Bihorel" <sebastien.bihorel at cognigencorp.com>
Cc: "r-help" <r-help at r-project.org>
Sent: Friday, February 24, 2017 1:10:44 AM
Subject: Re: [R] Vertical boxplot with a continuous X axis

Yes, this is exactly what the panel function
    panel.bwplot.intermediate.hh
along with the
    position()
function in the HH package was designed for.

Continuing with the example in the linked stackoverflow

df <- structure(list(X1 = c(67.0785968921204, 45.5968692796599,
36.9528452430474,
59.0160838607585, 50.0432724395945, 44.3381091105162, 57.9705240678336,
52.5298724133533, 62.0004216014734, 54.1111551461596), X2 = c(66.4508598009841,
46.9692156851792, 37.1419457255043, 60.0582991817961, 50.7717368681294,
44.6962314013419, 57.5490276313784, 52.6394305113891, 62.9297233041122,
56.8151766642767), X3 = c(66.4517425831512, 46.2946539468733,
36.5946733567535, 59.2477934854157, 49.1558840130484, 44.7507905380111,
59.1132983272444, 53.710627728232, 61.7923277906642, 57.5999862897015
), X4 = c(66.1516449763315, 45.4660590159847, 37.2239262718906,
59.2975530712561, 50.2546321578291, 44.7220452966667, 59.8879656465763,
52.321734919241, 62.0802304973764, 56.6507005349853), X5 = c(66.1810558292955,
46.3301985628267, 36.4487743101244, 60.054119632362, 49.1593136549535,
44.5708909518076, 58.5865142665164, 52.5527273219855, 61.3749185309236,
54.1823379401272), X6 = c(65.9530929286517, 45.5120010675769,
36.7924160587984, 58.9428613519645, 50.3412809263164, 44.9671678827697,
57.8718260182012, 51.8954544252633, 62.0173019998447, 56.3833840769146
), X7 = c(66.3862581408135, 46.5872469340431, 36.7585555977493,
58.1374309578563, 50.3399735165261, 44.5739565876491, 57.5245695195136,
52.7613488669329, 61.2500297922529, 55.9202360622414), X8 = c(67.5577910713347,
46.1891742544371, 36.4689522649804, 59.5271358261971, 49.6776114214636,
44.1995317742719, 58.4881363877987, 52.1946266979144, 62.1149998459759,
55.3748655464147), X9 = c(66.3943390258844, 45.843835703738,
37.3485122393333, 59.8591304277037, 49.387883195468, 44.4283817056918,
58.1874530826789, 53.5091378916001, 62.1187451212786, 55.3632760142297
), X10 = c(66.9748072219828, 46.20735965374, 36.7069272963502,
59.5035069226904, 48.8446530329762, 44.8753686249692, 58.0223695284058,
53.2732448917674, 61.2509571513, 54.9615424261546), age = c(55,
37, 31, 59, 49, 47, 69, 68, 69, 66)), .Names = c("X1", "X2",
"X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10", "age"), row.names =
c("GSM1051533_7800246024_R03C02",
"GSM1051534_7800246024_R04C02", "GSM1051535_7800246024_R05C02",
"GSM1051536_7800246024_R06C02", "GSM1051537_7800246085_R01C01",
"GSM1051538_7800246085_R02C01", "GSM1051539_7800246085_R03C01",
"GSM1051540_7800246085_R04C01", "GSM1051541_7800246085_R05C01",
"GSM1051542_7800246085_R06C01"), class = "data.frame")

##  install.packages("HH")  ## if necessary
library(HH)

df.melt <- reshape2::melt(df, id.vars=c("age"))
df.melt$age.pos <- factor(df.melt$age)
position(df.melt$age.pos) <- levels(df.melt$age.pos)


## three options of x ticks and color

bwplot(value ~ age.pos, data=df.melt,
       horizontal=FALSE,
       panel=panel.bwplot.intermediate.hh,
       scales=list(
         x=list(
           at=position(df.melt$age.pos), ## placement of tick labels and marks
           limits=c(29, 71),             ## x limits
           tck=1)),                      ## draw tick marks
       xlab="age",
       main=list("value ~ age", cex=1.4))

bwplot(value ~ age.pos, data=df.melt,
       horizontal=FALSE,
       panel=panel.bwplot.intermediate.hh,
       scales=list(
         x=list(
        ## at=position(df.melt$age.pos), ## placement of tick labels and marks
           limits=c(29, 71),             ## x limits
           tck=1)),                      ## draw tick marks
       xlab="age",
       main=list("value ~ age", cex=1.4))

bwplot(value ~ age.pos, data=df.melt,
       horizontal=FALSE,
       panel=panel.bwplot.intermediate.hh,
       col="blue",                       ## constant color
       scales=list(
         x=list(
       ##  at=position(df.melt$age.pos), ## placement of tick labels and marks
           limits=c(29, 71),             ## x limits
           tck=1)),                      ## draw tick marks
       xlab="age",
       main=list("value ~ age", cex=1.4))

On Thu, Feb 23, 2017 at 11:52 PM, Sebastien Bihorel
<sebastien.bihorel at cognigencorp.com> wrote:
>
> Hi,
>
> Can the boxplot design illustrated in the post (http://stackoverflow.com/questions/39849459/how-to-create-boxplots-with-a-continuous-x-axis-in-r) be reproduced with lattice or a lattice-derived function?
>
> Thank you
>
> Sebastien
>
> ______________________________________________
> 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.



More information about the R-help mailing list