You can restrict the vertical range by view=-50..50
. It also helps to set a grid with even number of data points, so that $(0,0)$ is not one of them. Like this:
plot3d(1/(x*y),x=-1..1,y=-1..1,view=-50..50,grid=[30,30]);
However, the picture is still isn't as clear, because Maple insists on drawing the vertical asymptotes:
For 2D plots these extra lines can be avoided with discont=true
, but for 3D plots the workaround is to plot in each quadrant and combine the plots.
with(plots):
display(plot3d(1/(x*y),x=0.1..1,y=0.1..1, grid=[20,20]), plot3d(1/(x*y),x=0.1..1,y=-1..-0.1, grid=[20,20]), plot3d(1/(x*y),x=-1..-0.1,y=0.1..1, grid=[20,20]), plot3d(1/(x*y),x=-1..-0.1,y=-1..-0.1, grid=[20,20]));
Ugly code, but better plot.
Or, combining both approaches,