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: Labeling series within the plot area
From
Nick Cox <[email protected]>
To
[email protected]
Subject
Re: st: Labeling series within the plot area
Date
Wed, 5 Dec 2012 09:13:56 +0000
But the trick used by Allan and myself can be automated....
On "local variables", see
http://www.stata.com/statalist/archive/2008-08/msg01258.html
Nick
On Tue, Dec 4, 2012 at 6:41 PM, <[email protected]> wrote:
> Thanks to all. Right now I'm simply setting local x and y variables equal
> to coordinates where there is whitespace in the graph, and then using
> -text(`y' `x' "Label")-, which is working OK, although it needs to be
> changed for every graph. Would be nice to have a more automated procedure,
> but you can't win 'em all.
>
> From: Nick Cox <[email protected]>
> To: [email protected],
> Date: 11/30/2012 08:15 AM
> Subject: Re: st: Labeling series within the plot area
> Sent by: [email protected]
>
>
>
> Allan's nice suggestion is similar in spirit to my earlier posting.
> With a little more work you can classify the data points and colour
> groups consistently, e.g.
>
> sysuse auto, clear
> mark touse
> markout touse price wei
> regress price wei i.for#c.wei
> predict yhat
> separate yhat, by(foreign)
> bysort touse foreign (weight): g flab = cond(foreign, "Foreign",
> "US") if _n == _N
> separate price, by(foreign)
> scatter price? yhat? weight, ms(oh th i i) mcolor(blue red)
> mlabcolor(blue red blue red) lcolor(blue red blue red) c(. . L L)
> mlab(. . flab flab) sort legend(off) ytitle(`: var label price')
>
> See also
>
> SJ-5-4 gr0023 . . . . Stata tip 27: Classifying data points on scatter
> plots
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J.
> Cox
> Q4/05 SJ 5(4):604--606 (no
> commands)
> tips for using separate, gray-scale gradation, and text
> characters as class symbols to classify data points on
> a scatter plot
>
>
> On Fri, Nov 30, 2012 at 9:38 AM, Allan Reese (Cefas)
> <[email protected]> wrote:
>> A trick I use is to create a second variable containing the label but
>> only at the selected points - usually the maximum.
>>
>> use auto
>> regress price wei i.for#c.wei
>> predict yhat
>> egen maxpoint=max(yhat), by(for)
>> sort for yhat
>> g flab="US"
>> replace flab="Foreign" if for==1
>> replace flab="" if yhat!=maxpoint
>> scatter price yhat weight, ms(oh i) c(. L) mlab(. flab)
>>
>> You can use mlabpos and xscale(range()) to allow for fit, or just use
>> the graph editor to tweak position.
>>
>> Allan
>>
>> On Nov 29, 2012, at 12:28 PM, [email protected] wrote:
>>>> When creating graphs (using a do-file, not the Graph Editor), is
>> there a
>>>> way to label the data series in the plot area, so the name of the
>> series
>>>> would appear near the line that is plotted? Here is an example:
>>>>
>> http://libertystreeteconomics.typepad.com/.a/6a01348793456c970c017d3dfcd
>> f73970c-popup
*
* 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/