MathGroup Archive 2011

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

Search the Archive

Re: Precicely defining plot size

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123553] Re: Precicely defining plot size
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Sun, 11 Dec 2011 03:46:07 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <jbspm1$3r9$1@smc.vnet.net> <201112101227.HAA19263@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

Armand,

I don't think that's quite doing what you think. Compare these plots to  
see why:

{{l, r}, {b, t}} = {{30, 30}, {30, 30}};
{w, h} = Total /@ {{l, r}, {b, t}};
aspectRatio = 1/GoldenRatio;
framesize = 144 {1, aspectRatio};
Plot[Sin[x], {x, 0, 10}, Frame -> True,
  ImageSize -> framesize + {w, h}, ImagePadding -> {{l, r}, {b, t}}]

aspectRatio = .5/GoldenRatio;
framesize = 144 {1, aspectRatio};
Plot[Sin[x], {x, 0, 10}, Frame -> True,
  ImageSize -> framesize + {w, h}, ImagePadding -> {{l, r}, {b, t}}]

aspectRatio = 3/GoldenRatio;
framesize = 144 {1, aspectRatio};
Plot[Sin[x], {x, 0, 10}, Frame -> True,
  ImageSize -> framesize + {w, h}, ImagePadding -> {{l, r}, {b, t}}]

Bobby

On Sat, 10 Dec 2011 06:27:59 -0600, Armand Tamzarian  
<mike.honeychurch at gmail.com> wrote:

> On Dec 9, 9:59 pm, premiumxy <s... at stefanabel.com> wrote:
>> Hello,
>>
>> I have layout problem, and I just cannot get it solved even after  
>> trying for a long time now...
>>
>> To make it simple: I want to create a plot with frame->true (that I  
>> after wards export to a *.eps file) with a precise frame size, let's  
>> say 2inch.
>>
>> Plot[Sin[x],{x,0,10},ImageSize->144]
>>
>> How do you have access to the frame size within a plot?! I know that by  
>> I mageSize->144 the whole image will be 2inch large. But this includes  
>> the ticks and the frame-labels. I can make paddings, or reduce the  
>> plotRegion, but always including the labels...
>>
>> It sounds like an easy problem. Has anybody an idea?
>>
>> Thanks a lot!
>
> With an ImageSize of 144 the frame will only be 144 if ImagePadding is
> zero. So what you need to do is explicitly set some image padding and
> add that to the "frame size" to get your final image size:
>
> (* padding *)
> {{l, r}, {b, t}} = {{30, 30}, {30, 30}};
>
> (* amount this adds to the size *)
> {w, h} = Total /@ {{l, r}, {b, t}};
>
> (* aspect ratio *)
> aspectratio = 1./GoldenRatio;
>
> (* frame size *)
> framesize = {144, 144*aspectratio}
>
> Plot[Sin[x], {x, 0, 10},
>  Frame -> True,
>  ImageSize -> framesize + {w, h},
>  ImagePadding -> {{l, r}, {b, t}}]
>
> This is also important in dynamic plots when you are resizing -- it
> allows you to keep everything a fixed size or alternatively you can
> resize will scale everything correctly.
>
> Mike
> http://ibnhconsulting.blogspot.com/
>


-- 
DrMajorBob at yahoo.com



  • Prev by Date: Re: LinearProgramming[]
  • Next by Date: Re: Crashing problem with 3d IFS program
  • Previous by thread: Re: Precicely defining plot size
  • Next by thread: Re: Precicely defining plot size