[R] vcd package --- change layout of plot
Prew, Paul
Paul.Prew at ecolab.com
Fri May 22 00:36:30 CEST 2009
Hello,
I'm trying to use the vcd package to analyze survey data. Expert judges
ranked possible features for product packaging. Seven features were
listed, and 19 judges split between 2 cities ranked them.
The following code (1) works, but the side-by-side plots for Cities PX,
SF are shrunk too much. Stacking PX on top of SF would make for a
better plot. (I could switch the order of Feature and Rank dimensions,
and go with the default side-by-side, but would prefer not to).
(1)
cotabplot(~ Rank + Feature| Cities, data = Pack.dat, gp = shading_max,
rot_labels = c(90, 0, 0, 0),just_labels = c("left", "left",
"left", "right"),set_varnames = c(Feature = ""))
Reading the vcd help, I got lost trying to understand the
panel-generating parameters I should use. My best guess was below (2),
but gave an error message. Clearly, I don't know what the paneling is
asking for. This is where I would like some advice, if anyone is
familiar with vcd.
(2)
#### Tried to change the layout of trellis plot from horizontal to
vertical
Pack.mos<-mosaic(~Feature + Rank, data = Pack.tab, gp = shading_max,
rot_labels = c(0, 0, 0, 0),just_labels = c("left", "left", "left",
"right"),set_varnames = c(Feature = ""))
## attempt to create an object for panel argument in cotabplot function
pushViewport(viewport(layout = grid.layout(ncol = 1)))
pushViewport(viewport(layout.pos.row = 1))
## tell vcd to change the default layout, and what to put in the top
plot
cotabplot(~ Feature + Rank | Cities, data = Pack.dat, panel = Pack.mos,
Pack.dat[["PX"]], gp = shading_max, rot_labels = c(0, 0, 0, 0))
## create mosaic plot that's conditional on Cities; first plot Cities =
PX
## panel argument is an attempt to modify an example in the vcd help
file
popViewport()
## create the graphic
Error: Cannot pop the top-level viewport (grid and graphics output
mixed?)
# no point in gong on to code the plot for layout.pos.row = 2
> str(Pack.tab)
Error in `[.structable`(x, i, args[[2]]) : subscript out of bounds
> class(Pack.tab)
[1] "structable" "ftable"
> dim(Pack.tab)
[1] 7 2 7
Cities PX SF
Rank Feature
1 Flexible 2 0
Integrate.Probes 1 2
Large/heavy 1 0
Lockout 0 1
Recyclable 3 5
Rigid 0 0
Small/light 2 1
2 Flexible 1 6
Integrate.Probes 2 0
Large/heavy 1 1
Lockout 1 0
Recyclable 2 0
Rigid 1 0
Small/light 2 2
3 Flexible 1 1
Integrate.Probes 3 0
Large/heavy 1 1
Lockout 2 1
Recyclable 1 3
Rigid 0 0
Small/light 0 3
4 Flexible 3 0
Integrate.Probes 0 2
Large/heavy 0 0
Lockout 2 2
Recyclable 0 1
Rigid 1 2
Small/light 3 2
5 Flexible 1 1
Integrate.Probes 1 1
Large/heavy 0 3
Lockout 0 2
Recyclable 2 0
Rigid 3 1
Small/light 2 1
6 Flexible 0 1
Integrate.Probes 1 3
Large/heavy 3 2
Lockout 3 1
Recyclable 0 0
Rigid 2 2
Small/light 0 0
7 Flexible 1 0
Integrate.Probes 1 1
Large/heavy 3 2
Lockout 1 2
Recyclable 1 0
Rigid 2 4
Small/light 0 0
> sessionInfo()
R version 2.9.0 RC (2009-04-10 r48318)
i386-pc-mingw32
locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
attached base packages:
[1] grid tcltk stats graphics grDevices utils datasets
[8] methods base
other attached packages:
[1] relimp_1.0-1 vcd_1.2-4 colorspace_1.0-0
MASS_7.2-46
[5] RSiteSearch_0.1-5 brew_1.0-3 lme4_0.999375-30
Matrix_0.999375-26
[9] lattice_0.17-22 Rcmdr_1.4-9 car_1.2-13
loaded via a namespace (and not attached):
[1] tools_2.9.0
If someone can give advice on stacking the two cities' plots, I would be
grateful.
Thanks, Paul
CONFIDENTIALITY NOTICE: =\ \ This e-mail communication a...{{dropped:12}}
More information about the R-help
mailing list