Setting Colors of traces and a subset for legend

Hi All,

Just looking to see if there is a starting point before I start from scratch on this task.

Task: I have a display that shows two sets of graphs. The same X-Axis and 2 separate Y-Axis that show data from experiments in two different ways. Nothing magical here. I use a multidimensional wave to store the data and am plotting different columns

If I look at the tracenamelist: B7;B7#1;B8;B8#1;B9;B9#1;B6;B6#1;B5;B5#1; I have the 2 traces for each data set. The traces are added via a function and the traces are basically added in pairs, i.e. B7#1 is appendedtograph immediately after B7.

Goal 1: Have the traces from the same originating data set be the same color, i.e. B7 and B7#1 are the same and B8 and B8#1 (and different from B7)...
Note there is not a defined number of sets. I use a wave widget to let the user pick the data to display and compare.

Goal 2: Create a legend with the wave symbol, but include only one instance of the pair, i.e. B7 would be included, but B7#1 would not. Since the they are the same color and represent data from the same set labeling them separately would be redundant.
Hi All,

I found a solution and thought I would post it for posterity's sake. I used the CommonColors function from the "Make Traces Different" code provided by Wavemetrics. Modifications:
1. Since I know the number of traces in my code I use it as input instead of using the function within the original.
2. I included a grouping variable the allows me to set the number of like colored traces.


Function CommonColors(numTraces,Grouping)
	Variable numTraces
	Variable Grouping
	
	String graphName = WinName(0, 1)
	if (strlen(graphName) == 0)
		return -1
	endif
	
	if (numTraces <= 0)
		return -1
	endif

	Variable red, green, blue
	Variable i, index
	for(i=0; i<numTraces; i+=1)
		index = (mod(floor(i/grouping), 10))			// Wrap after 10 traces.
		switch(index)
			case 0:
				red = 0; green = 0; blue = 0;
				break

			case 1:
				red = 65535; green = 16385; blue = 16385;
				break
				
			case 2:
				red = 2; green = 39321; blue = 1;
				break
				
			case 3:
				red = 0; green = 0; blue = 65535;
				break
				
			case 4:
				red = 39321; green = 1; blue = 31457;
				break
				
			case 5:
				red = 48059; green = 48059; blue = 48059;
				break
				
			case 6:
				red = 65535; green = 32768; blue = 32768;
				break
				
			case 7:
				red = 0; green = 65535; blue = 0;
				break
				
			case 8:
				red = 16385; green = 65535; blue = 65535;
				break
				
			case 9:
				red = 65535; green = 32768; blue = 58981;
				break
		endswitch
		ModifyGraph rgb[i]=(red, green, blue)
	endfor
End