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

From |
"Kieran McCaul" <Kieran.McCaul@uwa.edu.au> |

To |
<statalist@hsphsun2.harvard.edu> |

Subject |
RE: st: RE: AW: -graph combine- question |

Date |
Sat, 24 Oct 2009 07:32:07 +0800 |

... Thanks to everyone who commented on this problem. I thought that there might be some easy solution to this that I was missing, but that doesn't seem to be the case. The difference in the lengths of the x-axes is caused by the difference in the y-axis labels; larger y-axis labels shorten the x-axis. While you can manipulate the margin around the y-axis title, you can't do this around the axis labels. The following generated and combined the four figures: clear set obs 101 gen x=_n-1 gen y4= x^2 gen y3=y4/10 gen y2=y4/100 gen y1=y4/1000 forvalues i=1/4 { twoway (line y`i' x, lc(black)), /// ylabel(#5, angle(horizontal) format(%3.1f)) /// xlabel(0(10)100) /// ytitle("Y") /// xtitle("X") legend(off) name(y`i', replace) } gr combine y1 y2 y3 y4, col(2) iscale(0.7) graphregion(margin(zero)) I can sort of get what I want by fiddling with the right margin of the y-titles: forvalues i=1/4 { local margin = "" if `i' == 2 { local margin = ",margin(r=-1)" } if `i' == 3 { local margin = ",margin(r=-3)" } if `i' == 4 { local margin = ",margin(r=-5)" } twoway (line y`i' x, lc(black)), /// ylabel(#5, angle(horizontal) format(%3.1f)) /// xlabel(0(10)100) /// ytitle("Y" `margin') /// xtitle("X") legend(off) name(y`i', replace) } gr combine y1 y2 y3 y4, col(2) iscale(0.7) graphregion(margin(zero)) ______________________________________________ Kieran McCaul MPH PhD WA Centre for Health & Ageing (M573) University of Western Australia Level 6, Ainslie House 48 Murray St Perth 6000 Phone: (08) 9224-2701 Fax: (08) 9224 8009 email: Kieran.McCaul@uwa.edu.au http://myprofile.cos.com/mccaul http://www.researcherid.com/rid/B-8751-2008 ______________________________________________ If you live to be one hundred, you've got it made. Very few people die past that age - George Burns -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of G Livesey Sent: Saturday, 24 October 2009 2:52 AM To: statalist@hsphsun2.harvard.edu Subject: RE: st: RE: AW: -graph combine- question Dear Statalisters, Kieran says: Is there "an easy way to ensure that the LENGTH of the x-axis is the same in all FOUR graphs". As Kieran, Nick, and I find, it seems there is some fiddling to do to get what one is aiming for. Some method of command to control events (if possible) rather than fiddling around would be helpful, especially when several graphs are combined. Here I show FOUR graphs as a 2row x 2col combination, but have done 4row x 4col combinations and had to fiddle extensively. Including Nick's clever suggestion is helpful with some settings, but not necessarily with others. With other backgrounds/schemes the approach may not be ok as color of the ytitle may be seen through the background, as in example that follows, and presumably would not work at all when the graph is edited to be transparent - say in PowerPoint: sysuse auto, clear gen mpgX2= 2* mpg gen priceX1p5=1.5*price gr twoway scatter mpg price, ytitle("Hello" "world 1") xtitle("") name(one) graphregion(color(white)) ysize(2) xsize(2) gr twoway scatter mpgX2 priceX1p5, ytitle("", color("scheme background")) xtitle("") name(two) graphregion(color(white)) ysize(2) xsize(2) gr twoway scatter mpg price, ytitle("Hello" "world 3") name(three) graphregion(color(white)) ysize(2) xsize(2) gr twoway scatter mpg price, ytitle("", color("scheme background")) name(four) graphregion(color(white)) ysize(2) xsize(2) gr combine one two three four, row(2) ysize(2) xsize(2) ycommon xcommon graphregion(color(white)) When the ytitles in the offending graphs are removed then the x-axis lengths differ, as in the next example: sysuse auto, clear gen mpgX2= 2* mpg gen priceX1p5=1.5*price gr twoway scatter mpg price, ytitle("Hello" "world 1") xtitle("") name(one) graphregion(color(white)) ysize(2) xsize(2) gr twoway scatter mpgX2 priceX1p5, ytitle("", color("scheme background")) xtitle("") name(two) graphregion(color(white)) ysize(2) xsize(2) gr twoway scatter mpg price, ytitle("Hello" "world 3") name(three) graphregion(color(white)) ysize(2) xsize(2) gr twoway scatter mpg price, ytitle("", color("scheme background")) name(four) graphregion(color(white)) ysize(2) xsize(2) gr combine one two three four, row(2) ysize(2) xsize(2) ycommon xcommon graphregion(color(white)) I modifies the data so that it is not identical in each graph, which is more usually the case and this difference in data can affect the presentation. Maybe this problem is one for the developers at some point? Thans to all, Geoff. L> -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Nick Winter Sent: 23 October 2009 15:29 To: statalist@hsphsun2.harvard.edu Subject: Re: st: RE: AW: -graph combine- question Indeed, I have struggled with this as well. The not-perfect solution I usually use is to force Stata to include the space that the titles *would* take up in each graph, so the x-axis ends up the same size in all of them. This can be done by setting the color of the title to "scheme background": . gr twoway scatter mpg price, ytitle("Hello" "world") name(one) . gr twoway scatter mpg price, ytitle("Hello" "world", color("scheme background")) name(two) . gr combine one two And then fiddle with the -imargin- option to -graph combine- to get them closer together if desired. -Nick On 10/23/2009 4:59 AM, G Livesey wrote: > Dear Statalisters, > > Kieran's question is a good one. Martine's answer may solve Kieran's > current problem, though only partially answers the question. > > "ensure that the LENGTH of the x-axis is the same" > > I have no easy solution to do this and ask how to do this when the > graphs to combine do not have > > A) a common x-axis or > B) perhaps (I did not try this) span different ranges of a common axis > or > C) carry different axis-titles (e.g. some with and some without such > titles), which can affect the proportion of space given to the graph and > axis/margins and so length of the axis. > > A more comprehensive solution than -common axis- would be welcome > though I have not found one myself, and like Kieran have in the past > had to play about a lot to get what I want. > > Does a solution exist? Can one be created? > > With much appreciation and many thanks, > > Geoff. Livesey > > -----Original Message----- > From: owner-statalist@hsphsun2.harvard.edu > [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Martin > Weiss > Sent: 23 October 2009 09:20 > To: statalist@hsphsun2.harvard.edu > Subject: st: AW: -graph combine- question > > > > <> > > You are not looking for the -xcommon- option to -graph combine-, are > you? > > > ************* > clear* > set obs 10000 > > > gen x1= rnormal(10,100) > gen x2= rnormal(100,10) > > gen num=_n > > tw (line x1 num) in 1/5000, /* > */ name(gr1, replace) nodraw > tw (line x2 num), /* > */ name(gr2, replace) nodraw > > graph combine gr1 gr2, /* > */ ycommon xcommon > ************* > > > > HTH > Martin > > > -----Ursprüngliche Nachricht----- > Von: owner-statalist@hsphsun2.harvard.edu > [mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Kieran > McCaul > Gesendet: Freitag, 23. Oktober 2009 04:33 > An: statalist@hsphsun2.harvard.edu > Betreff: st: -graph combine- question > > .... > > Suppose I have four graphs that I combine to look like this: > > http://i37.tinypic.com/314wkfb.jpg > > My question is: is there an easy way to ensure that the length of the > x-axis is the same in all four graphs when they are combined. > > I can probably fiddle around with margin gaps until I get them right, > but is there something a little easier than that? > > Thanks. > > > ______________________________________________ > Kieran McCaul MPH PhD > WA Centre for Health & Ageing (M573) > University of Western Australia > Level 6, Ainslie House > 48 Murray St > Perth 6000 > Phone: (08) 9224-2701 > Fax: (08) 9224 8009 > email: Kieran.McCaul@uwa.edu.au http://myprofile.cos.com/mccaul > http://www.researcherid.com/rid/B-8751-2008 > ______________________________________________ > If you live to be one hundred, you've got it made. > Very few people die past that age - George Burns > > > > * > * 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/ > > > * > * 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/ > > > * > * 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/ -- -------------------------------------------------------------- Nicholas Winter 434.924.6994 t Assistant Professor 434.924.3359 f Department of Politics nwinter@virginia.edu e University of Virginia faculty.virginia.edu/nwinter w PO Box 400787, 100 Cabell Hall Charlottesville, VA 22904 * * 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/ * * 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/ * * 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: st: RE: AW: -graph combine- question***From:*Nick Winter <nwinter@virginia.edu>

**RE: st: RE: AW: -graph combine- question***From:*"G Livesey" <glivesey@inlogic.co.uk>

- Prev by Date:
**Re: st: RE: RE: How to generate this variable please?** - Next by Date:
**RE: st: RE: RE: AW: Compute mean for groups leaving one member out** - Previous by thread:
**RE: st: RE: AW: -graph combine- question** - Next by thread:
**Re: st: -graph combine- question** - Index(es):

© Copyright 1996–2015 StataCorp LP | Terms of use | Privacy | Contact us | What's new | Site index |