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]
Re: st: graphing median values against time
From
Donald Spady <[email protected]>
To
Statalist Statalist <[email protected]>
Subject
Re: st: graphing median values against time
Date
Wed, 9 Apr 2014 10:42:37 -0600
I get it to work if I do, starting at also collapse
alsocollapse((median) median = `name’) addplot((line median followint if aborig == 0, lcolor(dknavy) clwidth(thick)) || (line median followint if aborig == 1, lcolor(red) clwidth(thick)))
In other words if I bracket each of the add plot commands i.e. addplot((command set 1)||(command set2))
I am now trying to get even fancier, because I want to label the lines in add plot but am running into a bracket problem, i.e.
alsocollapse((median) median = `name’) addplot((line median followint if aborig == 0, lcolor(dknavy) clwidth(thick)) || (line median followint if aborig == 1, lcolor(red) clwidth(thick)) legend(label(0 “non-FN”) label(2 “FN”)))
the brackets are balanced here, but Stata stops and says
) required
r(100)
I have counted the brackets many times and do not see where the issue lies.
I think that you may be right in that there could be some form of error in lgraph.
I did the trace as Nick suggests and it always burps at the two-way command. It gets to the part ylabel(#10) [which is just asking for 10 nicely spaced numbers]
There is no common between label(#10) and alsocollapse. There is nothing in the lgraph command to suggest there should be a comma there. If I put a comma in, I get the message ‘invalid alsocollapse’.
For many purposes, I am satisfied with what I have, however it would be really nice to have that extra legend and it makes the graph a bit more self explanatory. It needs to be more or less automatic, as I have a lot of graphs to create.
Thanks for all your help.
Don
On Apr 9, 2014, at 9:34 AM, Joe Canner <[email protected]> wrote:
> Don,
>
> I had a hard time reproducing your error, perhaps because I don't have your data set, but I was eventually able to get results similar to what you found. I think this might be a bug in -lgraph-. If you do a -set trace on- (preceded by -set tracedepth 1- if desired) you can see the -twoway- statement that -lgraph- generates and see what might be causing the error. It appears that when you add the -lcolor(black)- option, -lgraph- gets confused and adds too many commas.
>
> For those who are more familiar with the ins and outs of -twoway- here are the two commands generated by -lgraph- corresponding to Don's two scenarios (I had to take the label() options out in order to get it to run):
>
> twoway (connect statistic following if aborig == 0, color(navy) lpat(solid) ) (connect statistic following if aborig == 1, color(maroon) lpat(solid) ) || line median following if aborig == 0, lcolor(dknavy) clwidth(thick)|| line median following if aborig == 1, ytitle(`"Mean "') legend(on order( 1 `"0"' 2 `"1"' )) title("Mean cumten (Median:nonFN:Navy; FN:Gold)",size(small))
>
> twoway (connect statistic following if aborig == 0, color(navy) lpat(solid) ) (connect statistic following if aborig == 1, color(maroon) lpat(solid) ) || line median following if aborig == 0, lcolor(dknavy) clwidth(thick)|| line median following if aborig == 1, lcolor(black), ytitle(`"Mean "') legend(on order( 1 `"0"' 2 `"1"' )) title("Mean cumten (Median:nonFN:Navy; FN:Gold)", size(small))
>
> Hope this helps.
>
> Regards,
> Joe Canner
> Johns Hopkins University School of Medicine
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of Donald Spady
> Sent: Wednesday, April 09, 2014 10:58 AM
> To: Statalist Statalist
> Subject: Re: st: graphing median values against time
>
> I dont think that is the case. I used a Regex search in two different text editors to look for non-ASCII characters and came up with nothing. Besides, if there was a non-ascii char, would it not show up in the other commands, where I had not added the lcolor(black) bit. I have run it many times without that option and no problems.
>
> Don
>
> On Apr 9, 2014, at 8:06 AM, Nick Cox <[email protected]> wrote:
>
>> I'd check for strange characters. Copy your command line into a string
>> variable and look for unusual ASCII characters with -charlist- (SSC)
>> or any alternative of your choice.
>> Nick
>> [email protected]
>>
>>
>> On 9 April 2014 14:25, Donald Spady <[email protected]> wrote:
>>> Tim
>>> After digesting your and Nick's advice I have used the lgraph command to good effect; however I have one problem. If I write:
>>> foreach name in "cumten" "cumswol" {
>>> igraph `name' following if visspell !=. & recnum == 1, by(aborig) label(0 3 9 15, lab size(tiny)) stat(mean) title("Mean `name' (Median:nonFN:Navy; FN:Gold)",size(small)) label(#10) also collapse((median) median = `name') addplot(line median following if aborig == 0, lcolor(dknavy) clwidth(thick)|| line median following if aborig == 1)
>>> }
>>>
>>> everything works fine and I get pretty pictures.
>>>
>>> BUT if I write:
>>> foreach name in "cumten" "cumswol" {
>>> lgraph `name' following if visspell !=. & recnum == 1, by(aborig) label(0 3 9 15, lab size(tiny)) stat(mean) title("Mean `name' (Median:nonFN:Navy; FN:Gold)",size(small)) label(#10) also collapse((median) median = `name') addplot(line median following if aborig == 0, lcolor(dknavy) clwidth(thick)|| line median following if aborig == 1, lcolor(black))
>>> }
>>> The only change is the addition of lcolor(black) at the end of the command.
>>>
>>> I get the message:
>>> invalid 'title'
>>> r(198)
>>>
>>> Why. And how do I fix it.
>>>
>>> Many thanks.
>>> Don
>>>
>>> On Mar 30, 2014, at 8:43 PM, Timothy Mak <[email protected]> wrote:
>>>
>>>> <>
>>>> Thanks Nick very much for helping to answer my question.
>>>>
>>>> To plot more than one summary statistics is a bit difficult, and you do have to use the -addplot- and the -alsocollapse- options. If you hadn't specified -by(aborig)-, then Nick's syntax would be almost right, except that you don't need the -if bvisittm1N- in the end, i.e. -addplot(line median bvisittm1N)- would do. However, because you have specified -by(aborig)-, you really need to do:
>>>>
>>>> addplot(line median bvisittm1N if aborig == 1 || line median bvisittm1N if aborig == 2)
>>>>
>>>> supposing your variable aborig has 2 levels (1,2).
>>>>
>>>> To understand the use of the -addplot- and the -alsocollapse- option a bit more, you may want to use the -nopreserve- option. This gives you the dataset that -lgraph- actually uses to plot your graph. Also, have a look at the macros `r(command)' and `r(options)'. This gives you the -twoway- syntax that lgraph uses on the collapsed data. Be sure to use command double quotes though when you display the macros, i.e.:
>>>>
>>>> di `"`r(command)'"'
>>>> di `"`r(options)'"'
>>>>
>>>> I hope that helps.
>>>>
>>>> Tim
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: [email protected] [mailto:[email protected]] On Behalf Of Nick Cox
>>>> Sent: 31 March 2014 08:38
>>>> To: [email protected]
>>>> Subject: Re: st: graphing median values against time
>>>>
>>>> You *must* specify a -twoway- subcommand, not -lgraph-, in the
>>>> -addplot()- call. This is documented in the help for -addplot option-.
>>>>
>>>> I doubt very much that giving the same variable names as in the main
>>>> call will do what you want.
>>>>
>>>> My second guess is that you need something more like
>>>>
>>>> alsocollapse((median) median=totend28)
>>>> addplot(line median bvisittm1N if bvisittm1N)
>>>>
>>>> Nick
>>>> [email protected]
>>>>
>>>>
>>>> On 31 March 2014 01:29, Donald Spady <[email protected]> wrote:
>>>>> Nick
>>>>> I had tried various combinations of that command and could not get it to work.
>>>>>
>>>>> here is my command
>>>>> .lgraph tottend28 bvisittm1N if bvisittm1N < 55, by(aborig) xlabel(0(3)54) stat(mean) alsocollapse((median)) addplot(lgraph tottend28 bvisittm1N if bvisittm1N <55, by(aborig))
>>>>>
>>>>> It doesn't work. I get the error
>>>>> lgraph is not a twoway plot type
>>>>> r(198);
>>>>>
>>>>> Don
>>>>> On Mar 30, 2014, at 5:14 PM, Nick Cox <[email protected]> wrote:
>>>>>
>>>>>> Timothy explains how to do that in the help.
>>>>>>
>>>>>> addplot(plot) This allows additional twoway plots to be plotted.
>>>>>> See addplot_option. Note that
>>>>>> because lgraph collapses the data before plotting in twoway,
>>>>>> plots given in addplot(plot)
>>>>>> should also refer to the collapsed data. Specify in
>>>>>> alsocollapse(clist) any additional data
>>>>>> that need to be collapsed.
>>>>>>
>>>>>> So, if you want median as well as mean you must specify
>>>>>>
>>>>>> alsocollapse(median) addplot(<whatever>)
>>>>>>
>>>>>> Note that nothing obliges you to use another -line- call.
>>>>>>
>>>>>> I haven't use -lgraph-, just looked at its help, but Timothy provides
>>>>>> lots of functionality.
>>>>>> Nick
>>>>>> [email protected]
>>>>>>
>>>>>>
>>>>>> On 30 March 2014 23:51, Donald Spady <[email protected]> wrote:
>>>>>>> Timothy
>>>>>>> I am using your -lgraph- command and wonder if it is possible to have TWO stats created (e.g. mean and median) for the same variable(s) at the same time. I want to plot both mean and median and cannot create an overlay to do so.
>>>>>>>
>>>>>>> Many thanks
>>>>>>> Don
>>>>>>> On Mar 28, 2014, at 1:29 AM, Timothy Mak <[email protected]> wrote:
>>>>>>>
>>>>>>>> The command -lgraph- that I wrote is for exactly this kind of problem if you don't want to create all the variables before plotting a graph.
>>>>>>>> You can see it by typing:
>>>>>>>> ssc des lgraph
>>>>>>>>
>>>>>>>> Tim
>>>>>>>>
>>>>>>>> -----Original Message-----
>>>>>>>> From: [email protected] [mailto:[email protected]] On Behalf Of Donald Spady
>>>>>>>> Sent: 28 March 2014 08:59
>>>>>>>> To: Statalist Statalist
>>>>>>>> Subject: Re: st: graphing median values against time
>>>>>>>>
>>>>>>>> Nick
>>>>>>>> It works. Just as I needed. Many thanks.
>>>>>>>> John: That suggestion didn't work the way I wanted it to, but thanks for the idea.
>>>>>>>>
>>>>>>>> Don
>>>>>>>> On Mar 27, 2014, at 5:48 PM, Nick Cox <[email protected]> wrote:
>>>>>>>>
>>>>>>>>> Sure. If you use -egen-'s -median()- and -mean()- functions to get the
>>>>>>>>> variables you want, then it's any graph you want.
>>>>>>>>>
>>>>>>>>> As the median and mean values are repeated, don't plot them repeatedly.
>>>>>>>>>
>>>>>>>>> Here are some dopey examples.
>>>>>>>>>
>>>>>>>>> . webuse grunfeld
>>>>>>>>>
>>>>>>>>> . egen median = median(invest), by(year)
>>>>>>>>>
>>>>>>>>> . egen mean = mean(invest), by(year)
>>>>>>>>>
>>>>>>>>> . egen tag = tag(year)
>>>>>>>>>
>>>>>>>>> . line mean median year if tag
>>>>>>>>>
>>>>>>>>> For finer subdivisions, just use more variables as arguments to -by()-.
>>>>>>>>>
>>>>>>>>> Nick
>>>>>>>>> [email protected]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 27 March 2014 22:34, Donald Spady <[email protected]> wrote:
>>>>>>>>>> Dear all
>>>>>>>>>> I want to graph the median and mean values of a series of variables against a time variable (on the X axis) and with the option of stratifying the variables by another one (such as sex or disease state). I think I can do this by collapsing the data but is it possible to do this while retaining the data set in its 'original' state. I have searched the archives and the reference manuals but have not come up with anything that seems to be what I want.
>>>>>>>>>> In many ways what I would like is a box plot with JUST the median (or mean) being plotted: no box, no outliers. Is that possible.
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>> Don
>>>>>>>>>> *
>>>>>>>>>> * 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/
>>>>>>>>>
>>>>>>>>> *
>>>>>>>>> * 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/
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> *
>>>>>>>> * 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/
>>>>>>>>
>>>>>>>> *
>>>>>>>> * 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/
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *
>>>>>>> * 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/
>>>>>>
>>>>>> *
>>>>>> * 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/
>>>>>>
>>>>>
>>>>>
>>>>> *
>>>>> * 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/
>>>>
>>>> *
>>>> * 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/
>>>>
>>>> *
>>>> * 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/
>>>>
>>>
>>>
>>> *
>>> * 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/
>>
>> *
>> * 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/
>>
>
>
> *
> * 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/
>
> *
> * 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/
>
*
* 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/