traceNameList omits Errorbar traces
inchinn
Hello Igorverse,
I have created a button to close and kill multiple waves displayed in a graph with the following code
string nameOfWindow=winname(0,1)
string tracenames=traceNameList(nameOfWindow,";",1)
killwindow/z $nameOfWindow
killwlist(tracenames)
string tracenames=traceNameList(nameOfWindow,";",1)
killwindow/z $nameOfWindow
killwlist(tracenames)
where killwlist(list) loops through a list of wave names and kills them.
I just noticed that traceNameList does not list waves that are used as error bars on the graph. Is there a way to do this? It doesn't appear to be an option in the optionsFlag... is there a bit parameter that does this and if not can it be added to the wish list?
Thanks for the help
If all your waves are in the same dataFolder then you can use WaveList. Also, be aware that TraceNames are not necessarily WaveNames.
Here is a quick demo that may help:
Make/D/O/N=(10) wData1, wData2, wData3, wErr
wData1[] = gnoise(10) + 30
wData2[] = gnoise(10) + 30
wData3[] = gnoise(10) + 30
wErr[] = sqrt(abs(wData1[p]))
Display wData1, wData2
AppendToGraph wData3/TN=MoreData
ModifyGraph mode=3,marker=1
ErrorBars wData1 Y,wave=(wErr,wErr)
ModifyGraph rgb(wData2)=(0,52224,0)
ModifyGraph rgb(MoreData)=(0,0,65280)
print "TraceList:"+TraceNameList("", ";", 1)
print "WaveList:"+WaveList("*", ";", "WIN:")
End
Good luck.
August 15, 2019 at 06:08 am - Permalink
TraceNameList does not list waves, it lists traces. Error bar waves are not traces. The fact that you are able to kill your waves using the trace names is kind of an accident dependent on the fact that trace names are derived from wave names.
WaveList("*", ";", "WIN:yourgraphname") will get a list of waves *in the current datafolder* that are also in your graph.
GetWindow yourgraphname, wavelist will create a text wave containing the names of all the waves in your graph. The relative datafolder path is in column 1 of the wave.
August 15, 2019 at 11:15 am - Permalink