You mean that you get the plot inside the errordlg?? That's weird... I cannot reproduce this, not even when I explicitly use the errordlg handle to plot. But the only reason I can think of, is that your errordlg becomes the current axes. Do you specify in which axes your plot should be made?? Like this:
This prevents this kind of problems, and is usually faster than plotting to the gca.
Also, with dlgs like errordlg is is usually preferred that the user has to close it, before the script continues. This way you make sure that the user has seen that there is a problem. And when the dlg is closed, it will not be used to plot your data in ;).
uiwait(errordlg('Make sure all input is a number!'));