Modulo a reflection around y = x, this is just
a standard Lorenz curve, as surmised earlier.
A solution from first principles is, as always,
instructive, but canned solutions have long existed
in Stataland. For example,
. search glcurve
Jann Ben
A day ago or two, Ronnie Babigumira wrote:
> I have a data that looks something like this
> par_id ag_area
> 1 112.2
> 2 91.3
> 3 74.7
> 4 64.3
> 5 57.3
> 6 42.4
> 7 75.4
> 8 77.7
> 9 102.9
> 10 108.0
>
> Where par_id is the parish id (an adminstrative unit), and ag_area, is
> the agricultural area in a given parish
>
> I would like to plot a cumulative distribution of the ag_area. I would
> like a plot that would look something like
>
> ag_area(%)
> 100 * * *
> | *
> | *
> | *
> |*
> |_ _ _ _ _ _ _ __ (number of parishes %)
> 100
My answer was:
> How about
>
> . cumul par_id [aw=ag_area], generate(c)
> . scatter c par_id, ylabel(0(.1)1)
But this was not quite it. Meanwhile, Ronnie contacted
me offlist. It turned out that he wanted to plot the
cumulative distribution of ag_area ordered by decreasing
values of ag_area. Thus, the solution is:
. gen df = ag_area
. sum df, meanonly
. local sum = r(sum)
. gsort -df // reverse order
. replace df = sum(df) / `sum' * 100 // cumulative area
. gen pc = _n/_N * 100 // proportion of cells
. scatter df pc, ylabel(0(10)100) xlabel(0(10)100)
*
* 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/