Get the color of a trace on a graph

Paste the code below into an Igor procedure file and compile. Here is an example of how to use the code:

Make test
Display test
print GetTraceColor("Graph0", "test")
  65535,0,0
ModifyGraph rgb=(0,0,39168)
print GetTraceColor("Graph0", "test")
  0,0,39168



//**
// Get the RGB triplet representing the color of a trace on a graph.
//
// @param graphName
//  A string containing the name of the graph.
// @param traceName
//  A string containing the name of the trace.
// @return
//  A string containing a comma separated list with the red, green,
//  and blue numeric values of the specified trace, or if there was
//  an error an empty string will be returned.
//*
Function/S GetTraceColor(graphName, traceName)
    String graphName
    String traceName
   
    if (WinType(graphName) != 1)
        printf "There is not a graph named %s.\r", graphName
        return ""
    endif
   
    String info = TraceInfo(graphName, traceName, 0)
    if (strlen(info) <= 0)
        printf "There is not a trace named %s on graph %s.\r", traceName, graphName
        return ""
    endif
   
    String traceRecreation = info[strsearch(info, "RECREATION", 1), strlen(info) - 1]
    String traceColors = StringByKey("rgb(x)", traceRecreation, "=", ";")
   
    // Remove parenthesis from string.
    traceColors = RemoveEnding(traceColors[1, strlen(traceColors) - 1], ")")
    return traceColors             
End

Forum

Support

Gallery

Igor Pro 8

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More