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
- References:
- Re: Precicely defining plot size
- From: Armand Tamzarian <mike.honeychurch@gmail.com>
- Re: Precicely defining plot size