# 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