Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down at the end of May, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Stacked bar graph with twoway__histogram_gen


From   Austin Nichols <austinnichols@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Stacked bar graph with twoway__histogram_gen
Date   Wed, 7 Mar 2012 13:58:44 -0500

Stefano Lombardi <lombardi_stefano@fastwebnet.it>:
See also
-bihist- and -byhist- on SSC.

On Wed, Mar 7, 2012 at 1:38 PM, Austin Nichols <austinnichols@gmail.com> wrote:
> Stefano Lombardi <lombardi_stefano@fastwebnet.it>:
> At a glance, your -rbar- goes from freq_2 to the sum, not freq_1 to the sum.
>
> On Wed, Mar 7, 2012 at 1:28 PM, Stefano Lombardi
> <lombardi_stefano@fastwebnet.it> wrote:
>> Dear Statalisters,
>>
>> I have a problem in plotting a stacked bar graph. I have read some
>> documentation on the Internet and I am really close to obtain what I need,
>> but still I cannot manage to solve one issue (I haven't found any similar
>> problem on the Statalist archive..)
>>
>> In practice, I have one duration variable in months (overall survival, "os")
>> which as usual can be either censored or uncensored (the failure dummy is
>> "status_os"; 1 = os is uncensored). I need to create a stacked bar graph
>> with different colors for censored and uncensored data (blue and red,
>> respectively). My code is the following:
>>
>>    use "epd0", clear
>>    twoway__histogram_gen os if status_os==0, gen(freq_1 x, replace) ///
>>    freq start(0) width(5)
>>    drop if missing(x)
>>    keep freq_1 x
>>    save f1, replace
>>
>>    use "epd0", clear
>>    twoway__histogram_gen os if status_os==1, gen(freq_2 x, replace) ///
>>    freq start(0) width(5)
>>    drop if missing(x)
>>    keep freq_2 x os
>>
>>    merge 1:1     x using f1
>>    mvencode freq_1 freq_2, mv(. = 0)
>>
>>    egen freq = rowtotal(freq_1 freq_2)
>>
>>    twoway ///
>>    (bar freq_1 x, barw(5) bcolor(red)) ///
>>    rbar freq_2 freq x, barw(5) bcolor(blue) ///
>>    legend(order(1 "Uncensored" 2 "Censored")) ///
>>    xtitle("`: var label os'") ytitle(Frequency)
>>
>> Everything looks perfect but for one thing. In one bin there is a blank gap
>> between the lower red bar (which counts for two observations) and the upper
>> blue bar (other two observations).
>> Actually -- also by checking the previously generated frequencies --  the
>> lower bar should correspond to three observations, hence the blank gap
>> should be red.
>>
>> Can you suggest any solution? It may be a coincidence, but that bin is the
>> only one where there should be plotted more uncensored (red) data than
>> censored (blue) ones.

*
*   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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index