cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
buzuddha1
Level II

Report(gb)[FrameBox(1)] << Frame Size() appears to be constrained by monitor size

Hi everyone!

 

I frequently make graphs in graph builder with multiple panels using the wrap function. These will go into scientific publications, so it's important that the frames themselves be of uniform size. 

 

I am aware of the command to scale the frame sizes. 

gb = graph builder(stuff in here)
Report(gb)[FrameBox(1)] << Frame Size(x,y)

The problems are that after increasing the x axis (for example) beyond a certain number of pixels A) the axis length of these frames no longer increases (appears to stop once it gets to the ends of the screen) and B) the y axis seems to change inconsistently! See attached pdf.

 

Ideally I'd like to be able to have these come out with frames that are not constrained by the window they're in, particularly because the axis text changes from graph to graph and causes differences in the width of the axis box and occasionally the width of the tile label, further complicates this problem. The end result is that I have to do a lot of manual adjustment in my vector editing software, which is a HUGE time sink, particularly because we revise figures regularly before publication.

 

Thanks for any help!

1 ACCEPTED SOLUTION

Accepted Solutions
Craige_Hales
Super User

Re: Report(gb)[FrameBox(1)] << Frame Size() appears to be constrained by monitor size

See if @danschikore comment helps ... Fit to Window("off") in the graph builder script. (or try the other answer in the same post.)

Craige

View solution in original post

2 REPLIES 2
Craige_Hales
Super User

Re: Report(gb)[FrameBox(1)] << Frame Size() appears to be constrained by monitor size

See if @danschikore comment helps ... Fit to Window("off") in the graph builder script. (or try the other answer in the same post.)

Craige
buzuddha1
Level II

Re: Report(gb)[FrameBox(1)] << Frame Size() appears to be constrained by monitor size

Thanks for your quick reply. Of what I have tested this morning, in most cases setting

fit to window("off")

works and creates frames of equal size.

 

One of my graphs seemed to have an issue. As you can see from the attached pdf, running this command on two separate graph builder scripts gives identical y-axes but the x-axes are still off. 

 

On the graph that comes up with 290 pixels, I was using a custom axis. If I convert it to a non-custom axis, the frames come up 300 pixels wide.

 

Custom axis:

Dispatch(
			{},
			"Viral Load",
			ScaleBox,
			{Scale( "Log" ), Format(
				"Custom",
				Formula(
					Match( value,
						10, "10",
						100, "",
						1000, "1K",
						10000, "",
						100000, "100K",
						1000000, "",
						10000000, "10M",
						100000000, "",
						1000000000, "1G",
						10000000000, ""
					)
				),
				15
			), Min( 4.05544569709589 ), Max( 2500000000 ), Inc( 1 ),
			Minor Ticks( 0 ), Add Ref Line(
				10,
				"Dashed",
				"Medium Light Gray",
				"",
				1
			), Label Row( Show Minor Labels( 0 ) )}
		)

I'll probably just stick with a non-custom axis to avoid issues. I was using this to thin out the labels (again, would have to then remove in the vector editor). It's too dense with every single one labeled. Is there an easy way to tell the axis to label only every other log? If I change the increment to 2, then I also lose the ticks, which I'd prefer to keep. Many thanks!