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]

From |
Nick Cox <njcoxstata@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: Re: st: plot yline for different values on each sub plot |

Date |
Tue, 19 Apr 2011 10:37:39 +0100 |

That's the way that -twoway bar- works. See SJ-7-1 gr0026 . . . . Stata tip 42: The overlay problem: Offset for clarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J. Cui Q1/07 SJ 7(1):141--142 (no commands) tip for graphing several quantities on a continuous axis Nick On Tue, Apr 19, 2011 at 10:28 AM, Timothy Colbourn <t.colbourn@ich.ucl.ac.uk> wrote: > Thanks Nick, > > This method (plotting several twoway graphs at one - some bar and one a line) works well. For those interested my new code is: > > twoway (bar livebirth month, barw(0.4)) (bar stillbirth month, barw(0.4)) (bar nnd month, barw(0.4)) /// > (bar mvital month, barw(0.4)) (line expbirths month, lcolor(red)), /// > ylabel(0(50)350, labsize(small) angle(0)) ytitle("frequency") xlabel(569(2)611, labsize(vsmall) angle(90)) /// > xtitle("Month") by(, title("Births and deaths in each RCT arm", size(small)) note("")) /// > legend(order(1 "Livebirths" 2 "Stillbirths" 3 "Neonatal Deaths" 4 "Maternal Deaths" 5 "Expected Births") size(vsmall)) by(arm) > > The only issue is that instead of the 4 bars for each of the different bar variables (livebirth, stillbirth, nnd and mvital) being plotted beside each other for each month they are plotted on top of each other. Although I think I may remove stillbirth, nnd and mvital from these graphs anyway as they are small numbers, so it is not an issue for me at this time.. > > > >> Date: Fri, 15 Apr 2011 11:57:32 +0100 >> From: Nick Cox <njcoxstata@gmail.com> >> Subject: Re: st: plot yline for different values on each sub plot >> >> I couldn't get the editing approach to work. That just means what it >> says: I am not at all familiar with all that the Graph Editor can so. >> >> This code indicates some technique that might help. Most of it just >> sets up an example. The key idea is that a different horizontal line >> can be drawn for a variable that is constant in each panel. It is not >> a -yline()- and is drawn only over the range of the data. >> >> sysuse auto, clear >> contract foreign rep78, zero >> graph bar (asis) _freq , over(rep78) by(foreign) >> egen mean = mean(_freq), by(foreign) >> twoway bar _freq rep78, barw(0.5) xla(1/5) || line mean rep78, by(foreign) >> >> On Fri, Apr 15, 2011 at 10:16 AM, Nick Cox <njcoxstata@gmail.com> wrote: >>> I don't know an easy way of doing this. You might try plotting all >>> four lines in all panels and then deleting three you don't need in the >>> Editor. Or you might draw each graph separately and then use -graph >>> combine-. Or you might rewrite using -twoway bar-. >>> >>> Either way, your macro manipulation is not going to work as you >>> intend. Stata interprets your >>> >>> `= ' >>> >>> stuff precisely once and _before_ the -graph- command gets to work. It >>> certainly does not do that separately for each separate graph, and it >>> will always interpret a reference to a variable as a reference to its >>> value in the first observation. >>> >>> Of course, wanting a different yline in each panel is a perfectly >>> reasonable request, but I think you will need to do it in one of the >>> ways mentioned above. >>> >>> Nick >>> >>> On Fri, Apr 15, 2011 at 9:56 AM, Timothy Colbourn >>> <t.colbourn@ich.ucl.ac.uk> wrote: >>> >>>> I have a bar graph plotted 4 times in one for each different arm of the trial I am analysing: by(arm) >>>> >>>> I have ploted a yline showing the expected number of births in each arm: yline(`=expbirths') which is a reference against the observed births bars plotted for each month (x axis). The problem is that Stata plots the yline on each of the 4 sub plots at the same value - the value for the first sub plot (arm) - rather than at the value for each arm on each subplot. I have tried yline(`=expbirths by(arm)') but it does the same thing (with no error message - i.e. it essentially ignores the by(arm). The full syntax for the graph is: >>>> >>>> graph bar (asis) livebirth stillbirth nnd mvital, over(month, label( labsize(vsmall) angle(90))) /// >>>> ylabel(0(50)550, labsize(small) angle(0)) yline(`=expbirths (arm)') ytitle("frequency") /// >>>> by(, title("Births and deaths in each RCT arm", size(small)) note("")) /// >>>> legend(order(1 "Livebirths" 2 "Stillbirths" 3 "Neonatal Deaths" 4 "Maternal Deaths") size(vsmall)) by(arm) >>>> >>>> Is it possible to plot the yline for each value of expbirths on each subplot? * * 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/

**References**:**Re: Re: st: plot yline for different values on each sub plot***From:*Timothy Colbourn <t.colbourn@ich.ucl.ac.uk>

- Prev by Date:
**Antwort: st: syntax loop** - Next by Date:
**AW: Antwort: st: syntax loop** - Previous by thread:
**Re: Re: st: plot yline for different values on each sub plot** - Next by thread:
**[no subject]** - Index(es):