[R] Vertical bwplot and stripplot

Peter Ehlers ehlers at ucalgary.ca
Sat Apr 23 16:37:41 CEST 2011


On 2011-04-23 07:13, David Neu wrote:
> On Sat, Apr 23, 2011 at 9:47 AM, David Winsemius<dwinsemius at comcast.net>  wrote:
>>
>> On Apr 23, 2011, at 9:26 AM, David Neu wrote:
>>
>>> Hi,
>>>
>>> I'd like to change the default orientation of bwplot() and stripplot()
>>> so the plots are displayed vertically.  Passing horizontal=FALSE into
>>> stripplot in the simple code below doesn't seem to be the answer.
>>>
>>> library(lattice);
>>> x<- rnorm(100);
>>> y<- as.factor(sapply(1:100, function(k) sample(c("A","B","C"), 1,
>>> prob=c(1/2, 1/3, 1/6))));
>>> my.df<- data.frame(x=x, y=y);
>>> stripplot(~x | y, data=my.df, as.table=TRUE, layout=c(1,3), hor);
>>
>> A) hor is not defined
>> B) it doesn't make sense to me to have the continuous variable as the
>> independent variable here, despite if being named `x`.
>>
>> Try:
>> stripplot(x~y , data=my.df, as.table=TRUE, layout=c(1,3), horizontal=FALSE);
>>
>> (I didn't recognize the as.table argument, but experimentation seems to
>> produce a top-down order to the plots.)
>>
>> --
>> David Winsemius, MD
>> West Hartford, CT
>>
>>
>
> Many thanks for your reply!
>
>> A) hor is not defined
> Ugggh, cut and paste mistake.
>
>> B) it doesn't make sense to me to have the continuous variable as the
>> independent variable here, despite if being named `x`.
> I have data from related experiments in that involves two variables
> conditioned on a third.  This data is displayed in an xyplot.  The
> reason I'm trying to get the vertical orientation in the stripplot is
> that in some experiments the variable plotted on the horizontal axis
> is invariant and in these cases for consistency I'd like the variable
> that is plotted on the vertical axis to continue to appear vertically.
>
> For example in non-lattice graphics the following works:
> stripchart(rnorm(100), vert=TRUE).
>
>> Try:
>> stripplot(x~y , data=my.df, as.table=TRUE, layout=c(1,3), horizontal=FALSE);
> Yes, that's moving closer, but the strips containing the conditioning
> info are missing.

You can define a 'phantom' single-level factor

   my.df$fac <- rep("", 100)
   stripplot(x ~ fac | y, data = my.df, layout = c(1, 3))

and I'd consider 'jitter'.

BTW, your method of generating 'y' seems overly complicated:

   y <- sample(c("A","B","C"), 100,
               replace=TRUE,
               prob=c(1/2, 1/3, 1/6))

Peter Ehlers



More information about the R-help mailing list