Window Refreshing Affects Relative Position
INFORMATION: In the spirit of sharing knowledge about function graphics, Gordon Farquharson presents the following knowledge gained after what he called some “quality hair pulling time.”
A great trick when plotting large amounts of data with function graphics is to disable drawing in the window. For example, like this.
w1 = Window(DIMENSIONS=[800, 400]) w1.Refresh, /DISABLE data = Dist(1000,1000) im1 = Image(data, CURRENT=w1, IMAGE_DIMENSIONS=[60,30], IMAGE_LOCATION=[25,25], AXIS_STYLE=2) w1.Refresh
Another nice feature of function graphics is relative coordinate positioning. For example, we can add a color bar to the right of the image like this.
cb1 = Colorbar(TARGET=im1, ORIENTATION=1, TEXTPOS=1, POSITION=[1.025,0.,1.050, 1.], /RELATIVE)
You see the result in the figure below.
Relative positioning and window refreshing work great together. |
However, disabling window refresh and relative coordinate positioning do not play nicely together. For example, try this.
w1 = Window(DIMENSIONS=[800, 400]) w1.Refresh, /DISABLE data = Dist(1000,1000) im1 = Image(data, CURRENT=w1, IMAGE_DIMENSIONS=[60,30], IMAGE_LOCATION=[25,25], AXIS_STYLE=2) cb1 = Colorbar(TARGET=im1, ORIENTATION=1, TEXTPOS=1, POSITION=[1.025,0.,1.050, 1.], /RELATIVE) w1.Refresh
The result is not what you would expect (and rather frustrating if you try it first). You see the result in the figure below.
Relative positioning and window refreshing don't work so great if the order of refreshing is changed. |
Version of IDL used to prepare this article: IDL 8.2.3.