Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: fill in harberger triangle

  • To: mathgroup at smc.vnet.net
  • Subject: [mg115687] Re: fill in harberger triangle
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Tue, 18 Jan 2011 05:51:15 -0500 (EST)

Agreed, Helen.

It seems obvious that "PlotRange->Automatic" should BE automatic, since if  
not, why call it Automatic?

Bobby

On Mon, 17 Jan 2011 04:36:35 -0600, Helen Read <readhpr at gmail.com> wrote:

> On 1/16/2011 5:52 AM, DrMajorBob wrote:
>> 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.
>
> I greatly dislike this behavior of Show that was introduced in, I think,
> v.6. Prior to that, Show came up with a reasonable PlotRange no matter
> what order the individual graphics. But now, by default it takes the
> PlotRange from the first graphic listed. I remember much discussion of
> this when v.6 came out, with some folks from WRI explaining why the new
> behavior is supposedly a Good Thing. Something about wanting the
> PlotRange from the first object because of options like Filling->Axis.
> Well, that's pretty much never the behavior that I would want, and if
> for some reason I did want the PlotRange from the first object listed, I
> would specify a PlotRange explicitly within Show.
>
> Show[{ , }, PlotRange->Automatic] will nearly always produce what I do
> want. Unfortunately, setting SetOptions[Show, PlotRange -> Automatic]
> doesn't even work, because "PlotRange is not a known option for Show" !
> It is a nuisance to have to stick PlotRange->Automatic in there every
> time I use Show. My students get burned on this all the time when using
> Show, because they don't use Show that often (usually they just plot
> things all in one plot to begin with), and so they forget about the need
> for PlotRange->Automatic. So they end up with these awful plots, things
> all cut off, and they don't understand why, and can never remember how
> to fix it.
>
> It has seemed to me all along that PlotRange->Automatic ought to be the
> default behavior of Show. There could always be an option for using the
> PlotRange and other options from the first graphic opject.
> Show[{,},Options->First] or something.
>
>
>> 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}}]}]]
>
> You can fix it with:
>
> 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}}]}],
>    PlotRange -> Automatic, AxesOrigin -> {0, 0}]
>
>
>>
>> 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]]
>
> That one takes a bit more work to fix, because it's getting other
> unwanted options from the first graphic besides the range.
>
> 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],
>   AspectRatio -> 1/GoldenRatio, PlotRange -> Automatic,
>   AxesOrigin -> {0, 0}, Axes -> True]
>
>
>> Stupid, I know... but that's the way it is.
>
> It's annoying for sure, and I really can't disagree with stupid.
>


-- 
DrMajorBob at yahoo.com


  • Prev by Date: CUDADot bug?
  • Next by Date: Re: question about CUDA
  • Previous by thread: Re: fill in harberger triangle
  • Next by thread: Re: fill in harberger triangle