[R] lattice plot formatting: pch, abbreviation and labels

Duncan Mackay dulcalma at bigpond.com
Sun Apr 27 03:06:58 CEST 2014


Hi Luigi

You are typing things unnecessarily: do not use the attach command unless
absolutely necessary - it has unfortunate consequences.
It is better to use with or within.
alpha is not available with some devices with bad consequences if used; its
default is 1 anyway.

Once you have stated a data.frame as the data object it is usually not
necessary to use the data.frame$ sign in to signify column names: use the
column names.
data = "a data.frame" is the equivalent to with

You are reordering the levels of stimulation and changing the name of 1 so I
thought it was easiest to make a column stim and do things there otherwise
it the relevelling could be done in the data argument using the subset
argument. Then the change to "Unst" could be done by using  strip    =
strip.custom(factor.levels = ...),

To change for the -/+ I made a group - the easiest way.
Have a look a changing the negative symbol to 20 or something else as it is
hard to visualise. You may vary things with changing cex (remember to have 2
values 1 for each group).

If you do str(xyplot object) you will get a big print of the object and
within that the x limits are shown as "0", "1" which means that the x values
are 1 and 2
There is a command to get these things but I have forgotten it

my.data$stimulation <- factor(levels = c("Unstimulated",
"ESAT6","CFP10","Rv3615c","Rv2654", "Rv3879", "Rv3873","PHA"))
my.data$stim <- factor(my.data$stimulation, labels = c("Unst.",
"ESAT6","CFP10","Rv3615c","Rv2654", "Rv3879", "Rv3873","PHA"))
my.data$pos <- ifelse(sign(my.data$copy) > 0, 2,1)

  stripplot(copy ~ factor(positivity)|stim,my.data,
            groups = pos,
            hor = F,
            layout = c(8,1),
            scales = list(x = list(at = c(1,2),
                                   labels = c("N","P"))),
            jitter.x = TRUE,
            amount = 2,
            pch = c(16,1),
            col = "black",
            ylab = expression(bold("Copy")),
            xlab = expression(bold("Stimulation")),
            main="Plot",
            par.settings = list(strip.background=list(col="white")),
par.strip.text=list(font=2)
            )
            
Regards

Duncan

Duncan Mackay
Department of Agronomy and Soil Science
University of New England
Armidale NSW 2351
Email: home: mackay at northnet.com.au


-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of Luigi Marongiu
Sent: Sunday, 27 April 2014 02:07
To: r-help at r-project.org
Subject: [R] lattice plot formatting: pch, abbreviation and labels

Dear all,
I am trying to use the lattice plot, but the syntax is quite
difficult. Specifically I have eight variables (1 to 8) each of them
further subdivided in two classes (negative=0 and positive=1). I am
using the stripplot() to represent these values. I would like to
represent the negative and positive values with black and white dots
so I have tried to use the argument pch=c(16, 1) both in the main
stripplot function and embedded in the scale argument. However the
resulting plot shows that some points are drawn with the pch=16 and
other with pch=1 irrespective of their class.
Is there a way to draw the values for the variable positivity = 0 with
pch=16 and those with positivity = 1 with pch=0?

In addition I would like to change the labels under the axis from 0,1
to N,P. However when I placed labels=c("N", "P") or labels=list("N",
"P") in the main stripplot() I did not obtained any difference and
when placed within the scale argument also the -labels were modified.
Is there a way to change the label 0 with N and the label 1 with P?

final problem: I would like to abbreviate the "Unstimulated" box label
with "Unst.". I have tried the abbreviate=TRUE argument but again the
syntax is too complex for me and it did not work.
Is there a way to abbreviate the variables names?

Thank you very much for your help.
Best wishes,
Luigi


CODE:::::::::


### open plot library
library(lattice)

my.data<-structure(list(
   column_1 = 1:120,
   column_2 = structure(c(
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8,
 1,2,3,4,5,6,7,8), .Label = c("Unstimulated", "ESAT6", "CFP10",
"Rv3615c", "Rv2654", "Rv3879", "Rv3873", "PHA"), class = "factor"),
    column_3 = structure(c(
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
0,0,0,0,0,0,0,0)),
     column_4 = c(
 
192.0519108,183.6403531,53.46798757,83.60638077,69.60749873,159.4706861,256.
8765622,499.2899303,
 
2170.799076,1411.349719,2759.472348,2098.973397,2164.739515,1288.676574,1611
.486543,6205.229575,
 
870.7424981,465.9967135,191.8962375,864.0937485,2962.693675,1289.259137,2418
.651212,7345.712517,
 0,168.1198893,674.4342961,101.1575401,47.81596237,0,0,1420.793922,
 
142.6871331,5.466468742,291.9564635,80.73914133,73.02239621,64.47806871,144.
3543635,3167.959757,
 
3164.748333,1092.634557,28733.20269,1207.87783,729.6090973,151.8706088,241.2
466141,9600.963594,
 
1411.718287,12569.96285,1143.254476,6317.378481,16542.27718,79.68025792,1958
.495138,7224.503437,
 
208.4382941,69.48609769,656.691151,0.499017582,7114.910926,187.6296174,41.73
980805,8930.784541,
 
4.276752185,0.432300363,60.89228665,1.103924786,0.490686366,1.812993239,7.26
4531581,1518.610307,
 
2172.051528,595.8513744,17141.84336,589.6565971,1340.287628,117.350942,593.7
034054,24043.61463,
 
0,81.83292179,1539.864321,36.41722958,8.385131047,161.7647376,65.21615696,72
65.573875,
 
97.84753179,154.051827,0.613835842,10.06138851,45.04879285,176.8284258,18795
.75462,30676.769,
 
5780.34957,944.2200834,2398.235596,1083.393165,2541.714557,1251.670895,1547.
178549,1792.679176,
 
3067.988416,8117.210173,23676.02226,8251.937547,17360.80494,18563.61561,1694
1.865,31453.96708,
 
2767.493803,4796.33016,12292.93705,3864.657567,9380.673835,14886.44683,8457.
88646,26050.47191)),
.Names = c("row", "stimulation", "positivity", "copy"), row.names =
c(NA, -120L),
 class = "data.frame")
attach(my.data)

stripplot(my.data$copy ~
factor(my.data$positivity)|factor(my.data$stimulation,
            levels = c("Unstimulated", "ESAT6","CFP10","Rv3615c",
"Rv2654", "Rv3879", "Rv3873","PHA")),
            my.data, hor=F, layout = c(8,1), scales = list(relation =
"same"),
      jitter.data=TRUE, alpha=1, pch=c(16,1), col="black",
      ylab=expression(bold("Copy")),
xlab=expression(bold("Stimulation")), main="Plot",
      par.settings = list(strip.background=list(col="white")),
            par.strip.text=list(font=2))

______________________________________________
R-help at r-project.org mailing list
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