Scale Marker Size in Axis Units
The attached zip archive contains a procedure file and a demo experiment that allow you to display a trace using markers where the size of each marker is controlled by a wave whose values are scaled in units of one of the axes.
In this application, we have X and Y waves and a wave containing a radius for each XY pair. We want to display a marker, such as a circle, at each XY location with the size of the marker controlled by the radius wave. The radius wave data is scaled in terms of one of the built-in axes: left, right, bottom, or top.
This version is for Igor Pro 6.37 through 8.0x. A different version will ship with Igor Pro 9.00 and later.
To try it, download and unzip the attached zip file. Copy the "Scale Marker Size in Axis Units.ipf" procedure file to your "Igor Procedures" folder. Copy the "Scale Marker Size in Axis Units Demo.pxp" file to anywhere on your hard disk. Run Igor and open the demo experiment file.
If you are not familiar with "Igor Procedures", execute this in Igor:
DisplayHelpTopic "Special Folders"
Hi,
I have tried this out and it works as advertised. I do have question though. I have put the in the "Scale Marker Size in Axis Units.ipf" in my procedures folder in the Wavemetrics folder within documents (MacOS). When open the file and the command window following the instruction in the notebook. You say: "In the main procedure window of this experiment you see a #include statement that includes the "Scale Marker Size In Axis Units.ipf" procedure file. Below that you see the DemoScaleMarkerSize function. It makes the xData, yData, and radiusData waves, displays them in a table, creates the demo graph, and then executes this command:"
I see no mention of the #include statement.
#pragma rtGlobals=3 // Use modern global access method and strict wave access.
// This version is for Igor Pro 6.37 through 8.0x. A different version will ship with Igor Pro 9.00 and later.
Function DemoScaleMarkerSize(axisName, axisMin, axisMax)
String axisName // Must be "left" or "bottom"
Variable axisMin, axisMax // Desired min and max for the specified axis
Variable isLeftAxis = CmpStr(axisName,"left") == 0
Variable isBottomAxis = CmpStr(axisName,"bottom") == 0
if (!isLeftAxis && !isBottomAxis)
Abort "The axis name must be left or bottom"
endif
Doing SetIgorOption IndependentModuleDev=1
Does allow me to see the procedure file and the location with the Igor Procedures does load it automatically upon launch if I read the manual correctly. Was the inclusion of #include need be added only if I put it into user procedures?
Andy
May 16, 2020 at 04:09 pm - Permalink
That statement is correct for Igor9 but not for Igor8. I have removed it in the attachment above.
May 18, 2020 at 05:11 am - Permalink