Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Nick Cox <njcoxstata@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: Changing line color for more than 20 overlaid twoway line plots |
Date | Thu, 31 Jan 2013 17:12:51 +0000 |
You raise a good point. My code should indeed work fine without explicit blanking out of the -local- macro. But I decided to include that line for a reason that I am now happy to explain. I find that most graphs require numerous minor tweaks. Or rather, my personal style is to get a very rough graph quickly and then make all sorts of minor adjustments. For anything complicated I move from the Command window to a do-file editor window and run revised code again and again. So, I wanted to underline that's a good style to blank out the macro before each new graph run. Otherwise the iterative local call `call' <new stuff> will mean that syntax just accumulates like dirt on a shoe. I also want to emphasise my personal opinion that working with undefined macros can be excellent style and in no sense an error. Nick On Thu, Jan 31, 2013 at 4:33 PM, Klaus Pforr <kpforr@googlemail.com> wrote: > <> > > Dear Nick, > > your solution reminds me of a discussion, which appeared recently in the > wishlist-posts: > > Should macros be declared or initialized, or otherwise cause an error. In > your code you used this line > ### > local call > ### > i.e. you initialized the macro to a zero content. The code should work > without this line, shouldn't it (yes, why not just try it, before you > ask...)? Is this just a better coding style? > > best wishes > > Klaus > > __________________________________ > > Klaus Pforr > GESIS -- Leibniz Institut für Sozialwissenschaft > B2,1 > Postfach 122155 > D - 68072 Mannheim > Tel: +49 621 1246 298 > Fax: +49 621 1246 100 > E-Mail: klaus.pforr@gesis.org > __________________________________ > > > -----Ursprüngliche Nachricht----- > Von: owner-statalist@hsphsun2.harvard.edu > [mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Nick Cox > Gesendet: Donnerstag, 31. Januar 2013 17:17 > An: statalist@hsphsun2.harvard.edu > Betreff: Re: st: Changing line color for more than 20 overlaid twoway line > plots > > set obs 100 > forval j = 1/22 { > gen var`j' = rnormal() > } > gen year = 1900 + _n > > local call > > forval j = 2/22 { > local call `call' line var`j' year, lc(gs10) || } > > twoway `call' || line var1 year, lc(black) legend(off) > > > On Thu, Jan 31, 2013 at 4:06 PM, Roth Florian <Florian.Roth@unilu.ch> wrote: >> Dear All, >> >> I am trying to make a number of overlaid twoway line plots for a variable > (e.g. var1-var22) in a wide panel data set. >> For this I use the Stata command: >> >> . twoway line var1-var22 Year >> >> Now, I would like to change the line color of var2-var22 to grey and the > line of var1 to black. So I use: >> >> . twoway line var1-var22 Year, lcolor(black gs10 ...) >> >> I then get the error: >> >> . p21(line(color(blue)) area(linestyle(color(blue)))): too >> many arguments >> >> It seem as if lcolor does not allow for more than 20 arguments. >> >> Now, I could transform my data to long format and use - xtline - with >> options - overlay - and -plot#opts() - but then I would have to set >> the color for every line separately. This is not very practical because I > would like to make the same plot for many different data sets with a varying > number of line plots overlaid. >> >> I care only about visually distinguishing var1 from the rest. So maybe > there is a way to threat var2-var22 as a group. >> Or is there any other way to change the line color for a number of > overlaid line plots. >> * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/