Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: RE: RE: Putting a rug underneath a boxplot
From
Nick Cox <[email protected]>
To
[email protected]
Subject
Re: st: RE: RE: Putting a rug underneath a boxplot
Date
Wed, 23 Mar 2011 16:54:13 +0000
Thanks for this. Good point about -symxsize()-. I seem to recall some
reason why this didn't seem to be the solution in an earlier thread,
but I think you are right: if you want these pseudo-pipes in a legend,
then it helps. A bigger point is why do you want a legend at all, as
much of the point of a strip plot is that the axis labels carry that
information.
For those interested in thin rbars as mimicking pipe symbols, here is
a simpler example. I will add something like this to the help for
-stripplot-. The "5" is empirical as producing a thin bar on the scale
of the variable -price-.
sysuse auto, clear
gen price1 = price - 5
gen price2 = price + 5
stripplot price, over(rep78) box ms(none) ///
addplot(rbar price1 price2 rep78, horizontal barw(0.2) bcolor(gs6))
There are small artefacts when the edge of a box coincides with a pipe symbol.
Your other troubles seem to arise from using -grc1leg- and/or -graph
combine-, but in any case I don't understand what they are.
Nick
On Wed, Mar 23, 2011 at 3:39 PM, Oliver Jones
<[email protected]> wrote:
> Hi Nick,
> thanks al lot for your help. Everything works fine now.
>
> I just ran into some more trouble while combining 12 of these stripplots
> using -grc1leg- from http://www.stata.com/users/vwiggins. There is no error
> message when one specifys the xsize() option to control overall aspect
> ratio.
> A very easy work-around is to use -graph display- after generating the
> combined
> graph, see http://www.stata.com/statalist/archive/2008-12/msg00086.html.
>
> Also combining graphs in Stata is quiet tricky because the iscale() option
> seams to trade between textsize and markersize, is that correct?
>
> By the way to change the length of legend entry one can avoid the graph
> editor
> and use the option symxsize() within the legend() option.
Am 23.03.2011 12:16, schrieb Nick Cox:
>> First, please remember to specify where user-commands you refer to
>> come from. In this case -stripplot- is from SSC. (Otherwise anyone who
>> does not know that could try repeating your example and would get
>> puzzling error messages.)
>>
>> This question in essence repeats one raised by Jannik Helweg-Larsen in
>> the thread starting with
>>
>> http://www.stata.com/statalist/archive/2011-03/msg00240.html
>>
>> The problem is that with -ms(none)- the corresponding legend entry is
>> blank.
>>
>> The work-around in Jannik's thread was to use a thin -rbar-. The
>> legend entry is much longer than you want, but you can fix it in the
>> Graph Editor.
>>
>> Here is example code for your example problem:
>>
>> sysuse auto, clear
>>
>> * Create ancillary variables
>> gen y = 1
>> gen y_foreign = y
>> label variable y_foreign "Foreign"
>> gen y_not = y - 0.05
>> label variable y_not "Not Foreign"
>> gen y_miss = y - 0.1
>> label variable y_miss "NA"
>>
>> gen byte index_region = 1 if foreign == 1
>> replace index_region = 2 if index_region == .
>> replace index_region = 3 if foreign == .
>> label define lbl_index_region 1 "Foreign" 2 "Not Foreign" 3
>> "Missing"
>> label values index_region lbl_index_region
>>
>> gen price2 = price + 10
>>
>> *
>>
>> local boxoffset = 0.1
>> stripplot price, over(y) ///
>> title("My Box- and Rug-Plot") ///
>> legend(order(6 7 8) cols(1) on) ///
>> box(barwidth(0.1)) iqr boffset(`boxoffset') ///
>> ms(none) ///
>> addplot(rbar price price2 y_foreign if index_region == 1, ///
>> horizontal barw(0.02) bcolor(blue) || ///
>> rbar price price2 y_not if index_region == 2, ///
>> horizontal barw(0.02) bcolor(red) || ///
>> scatter y_miss price if index_region == 3, ///
>> ms(X) mcolor(black) ///
>> ) ///
>> yscale(off) ylab(1(0.1)1.15, nogrid)
>>
>> On Wed, Mar 23, 2011 at 10:56 AM, Oliver Jones
>> <[email protected]> wrote:
>>
>>> the topic is some month old, but today I had a look at the box and rug
>>> plots
>>> I created
>>> using the stripplot command.
>>> To create the rug, I followed the advice and generated a string variable
>>> containing the
>>> symbol "|".
>>>
>>> Here is an example of what I do:
>>>
>>> ************************* begin example *************************
>>> graph drop _all
>>> sysuse auto, clear
>>>
>>> * Create ancillary variables
>>> gen y = 1
>>> gen y_foreign = y
>>> label variable y_foreign "Foreign"
>>> gen y_not = y - 0.05
>>> label variable y_not "Not Foreign"
>>> gen y_miss = y - 0.1
>>> label variable y_miss "NA"
>>>
>>> gen byte index_region = 1 if foreign == 1
>>> replace index_region = 2 if index_region == .
>>> replace index_region = 3 if foreign == .
>>> label define lbl_index_region 1 "Foreign" 2 "Not Foreign" 3
>>> "Missing"
>>> label values index_region lbl_index_region
>>>
>>> gen pipe = "|"
>>> *
>>>
>>> local boxoffset = 0.1
>>> stripplot price, over(y) ///
>>> title("My Box- and Rug-Plot") ///
>>> legend(order(6 7 8) cols(1) on) ///
>>> box(barwidth(0.1)) iqr boffset(`boxoffset') ///
>>> ms(none) ///
>>> addplot(scatter y_foreign price if index_region == 1, ///
>>> ms(none) mla(pipe) mlabcolor(blue) mlabpos(0) ||
>>> ///
>>> scatter y_not price if index_region == 2, ///
>>> ms(none) mla(pipe) mlabcolor(red) mlabpos(0) ||
>>> ///
>>> scatter y_miss price if index_region == 3, ///
>>> ms(X) mcolor(black) ///
>>> ) ///
>>> yscale(off) ylab(1(0.1)1.15, nogrid)
>>>
>>> ************************* end example *************************
>>>
>>>
>>> The problem is the legend, I need the red and blue pipe symbol as legend
>>> key-symbols.
>>> Is there a way I can tell Stata to use such symbols?
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/