[R] Vertical bwplot and stripplot

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


On 2011-04-23 08:03, David Neu wrote:
> On Sat, Apr 23, 2011 at 10:37 AM, Peter Ehlers<ehlers at ucalgary.ca>  wrote:
>> 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
>>
>>
>
> Ahh, that's nice.
>
> BTW, for my understanding, could you please explain why you suggested
> the use of 'jitter'?  I'm thinking it's to aid in the visualization.

Just try it:

  stripplot(x ~ fac | y, data = my.df, layout = c(1, 3),
             jitter.data = TRUE, factor = 0.8)

Play with different values of 'factor'; factor = 0 is
equivalent to leaving the jitter.data argument at the
default value of FALSE.

See the example in ?xyplot and see ?panel.stripplot.

Peter Ehlers



More information about the R-help mailing list