Statalist The Stata Listserver


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: Re: Arbitrary limits on number of data series for line plots


From   n j cox <n.j.cox@durham.ac.uk>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Re: Arbitrary limits on number of data series for line plots
Date   Thu, 27 Apr 2006 13:12:33 +0100

Allan is missing out on the -c(L ..)- syntax. Here
the .. mean "and so on".

You can avoid -scatter, ms(i ..)- by using -line-.

Yet another possibiliity is -linkplot- from SSC.

Nick
n.j.cox@durham.ac.uk

Michael Blasnik

Based on your example graph commands (identical line styles and symbols for all lines), wouldn't it work to reshape long and then use the connect(L) option after sorting by panel and date? Also, -xtline- may be worth checking out, although I'm not sure what it's limitations may be with more than 100 panels.

Allan Reese

I have data in which numerous individuals were each observed for a short time. It makes sense to plot each individual against time, so the data have been restructured with observations for each date and a response variable for each individual:

day y1 y2 y3 ...
1 v . .
2 v . .
3 v v v
4 v v v
5 v . v
6 v . v
7 . . v

(v where there was an observation, and the days extend over several years.)

From such data it is easy to plot several lines on one plot:

scatter y1-y3 day, c(l l l l) ms(i i i i)

The extra items in the connect and symbol lists are ignored, which is fortunate as I might use "y1-y20" where some individuals have been dropped so the actual number of variables is not obvious.

The first limit was hit at 20 y series. I can't find in the documentation a limit for the varlist in a scatter command. I recall it used to be about 29 y variables. The command
scatter y1-y25 day, legend(off) pcycle(1)
appears to work. The options are only to avoid a multicolored plot squashed by a huge legend.
More points appear on each plot of y1-y15, y1-y20, y1-y25 so it appears all series are plotted.

However
scatter y1-y21 day, c(l l l l l l l l l l l l l l l l l l l l l )
ms(i i i i i i i i i i i i i i i i i i i i i ) legend(off) pcycle(1)
does NOT work. Having more than 20 items in the option lists appears to crash some buffer, and the plot reverts to default markers.

BUG? It appears the varlist can have more than 20 y variables, but the connect list can have only 20 items. (The style list recycles after 15 but I haven't tried extending that.)

Since I had more than 20 individuals, the next step was to overlay scatterplots:
scatter y1-y20 datevar, c(L L L L L L L L L L L L L L L L L L L )
ms(i i i i i i i i i i i i i i i i i i i i )
|| scatter y21-y40 datevar, c(L L L L L L L L L L L L L L L L L L L L )
ms(i i i i i i i i i i i i i i i i i i i i )
|| scatter y41-y60 datevar, c(L L L L L L L L L L L L L L L L L L L L )
ms(i i i i i i i i i i i i i i i i i i i i )
|| scatter y61-y80 datevar, c(L L L L L L L L L L L L L L L L L L L L )
ms(i i i i i i i i i i i i i i i i i i i i )
|| scatter y81-y100 datevar, c(L L L L L L L L L L L L L L L L L L L L )
ms(i i i i i i i i i i i i i i i i i i i i ) pcycle(1) legend(off) xlab(,angle(20)) ylab(,angle(0))

And that (copied from the log) works. But add one more "|| scatter y101 datevar" and get the error message "Too many variables specified". 100 variables may have seemed a generous limit when programmed, but can anyone suggest a method to draw more lines on the same graph?

*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* 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   |   What's new   |   Site index