\defineconversion
	[hans and taco]
	[H,a,n,s,\ ,\&,\ ,T,a,c,o,\ ]

\setupcolors
	[state=start]
\chardef\TeXtextcolormode\zerocount

\startTeXtexts
	\doloop{\doifelseconversionnumber{hans and taco}{\recurselevel}%
		% +500 is a hack (hopefully the plot doesn't contain more than 500 labels)
		% otherwise the points would be overwritten by labels with another \TeXtext:
		% it might need a fix in ConTeXt core
		{\TeXtext{\numexpr\recurselevel+500\relax}{\strut{\convertnumber{hans and taco}{\recurselevel}}}}%
	{\exitloop}}%
\stopTeXtexts

\edef\numberofsymbols{1}%
\doloop{\doifelseconversionnumber{hans and taco}{\recurselevel}%
	{\edef\numberofsymbols{\recurselevel}}%
	{\exitloop}}%

\starttext
\startMPcode

color c[];
for i=1 upto \numberofsymbols:
	c[i] = ((i-1)/(\numberofsymbols-1))[red,blue];
endfor;

vardef the_number(expr n) = ((n mod \numberofsymbols) + 1) enddef;

vardef the_symbol(expr n) =
	picture pict;
	pict := sometxt(the_number(n) + 500);
	pict shifted -.5[llcorner pict,lrcorner pict]
enddef;

def draw_point(expr x, y, n) =
	draw (the_symbol(n) shifted (x,y)) withcolor c[the_number(n)];
enddef;

for i=0 upto 23:
	draw_point(0,-i*3mm,i);
endfor;
\stopMPcode

\stoptext

