Re: fill in harberger triangle
- To: mathgroup at smc.vnet.net
- Subject: [mg115602] Re: fill in harberger triangle
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Sun, 16 Jan 2011 05:52:14 -0500 (EST)
I don't like the logic or paradigm of Epilog, so I'd do it this way: a = 10.2; e = 1.4; q[p_] = 10.2 p^1.4; lowerBound = p /. Solve[q[p] == 100, p][[1]] // Quiet; Show[Plot[q[p], {p, 0, 30}, PlotRange -> {0, Automatic}], Plot[q[p], {p, lowerBound, 20}, Filling -> 100], Graphics[{Line[{{0, 100}, {30, 100}}], Line[{{20, 0}, {20, 1200}}]}]] A "complete" graphics object covering the full range of x and y values must go first, or things go very wrong. This shows nothing but the filled area: a = 10.2; e = 1.4; q[p_] = 10.2 p^1.4; lowerBound = p /. Solve[q[p] == 100, p][[1]] // Quiet; Show[Plot[q[p], {p, lowerBound, 20}, Filling -> 100], Plot[q[p], {p, 0, 30}, PlotRange -> {0, Automatic}], Graphics[{Line[{{0, 100}, {30, 100}}], Line[{{20, 0}, {20, 1200}}]}]] And this shows nothing but the lines, with a ridiculous aspect ratio: a = 10.2; e = 1.4; q[p_] = 10.2 p^1.4; lowerBound = p /. Solve[q[p] == 100, p][[1]] // Quiet; Show[Graphics[{Line[{{0, 100}, {30, 100}}], Line[{{20, 0}, {20, 1200}}]}], Plot[q[p], {p, 0, 30}, PlotRange -> {0, Automatic}], Plot[q[p], {p, lowerBound, 20}, Filling -> 100]] Stupid, I know... but that's the way it is. Bobby On Sat, 15 Jan 2011 03:42:37 -0600, Sjoerd C. de Vries <sjoerd.c.devries at gmail.com> wrote: > I usually cheat by drawing the same graph twice, with slightly > different settings like below: > > a = 10.2; > e = 1.4; > q[p_] = 10.2 p^1.4; > lowerBound = p /. Solve[q[p] == 100, p][[1]] // Quiet; > Show[ > Plot[q[p], {p, 0, 30}, PlotRange -> {0, Automatic}, > Epilog -> {Line[{{0, 100}, {30, 100}}], > Line[{{20, 0}, {20, 1200}}]}], > Plot[q[p], {p, lowerBound, 20}, Filling -> 100] > ] > > BTW I take it you meant to say: a horizontal line with Q (instead of > P) = 100 and a vertical line with P (instead of Q) = 20 > > Cheers -- Sjoerd > > On Jan 14, 12:21 pm, r_poetic <radford.scha... at mms.gov> wrote: >> Hello, >> while the Filling option for Plot is great, how can I use it (or >> another feature of Mathematica 8) to fill in only the area between a >> curve and a vertical line and a horizontal line? For instance, >> between (1) the function Q= A * P ^ E, where A and E are given >> constants, (2) a horizontal line e.g. P = 100, and (3) a vertical >> line, e.g. Q = 20. The fill is only inside the triangle-like area. >> This would be the "harberger triangle" showing consumer surplus in >> economics. >> >> Thanks! > > -- DrMajorBob at yahoo.com