Every time you call figure() a new figure is generated, unless you're calling a specific existing figure. I don't know what your code is supposed to be doing but if you want the loop to act on the same figure, this is how it should be structured,
NumbofSignals=4
figure
hold on
for k=1:NumbofSignals
wcoherence(Y{1},Y{k}, 1000)
end
