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"

 

Scale Marker Size In Axis Units Demo_1.zip (11.09 KB)

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 TextEncoding = "UTF-8"
#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

Quote:
I see no mention of the #include statement.

That statement is correct for Igor9 but not for Igor8. I have removed it in the attachment above.