Level sets of scalar-valued functions

f[x_,y_]=2x-y
Plot3D[f[x,y],{x,-4,4},{y,-4,4}]
plot1=ContourPlot[f[x,y],{x,-4,4},{y,-4,4}];
gradf = Grad[f[x,y],{x,y}]
plot2 = VectorPlot[gradf,{x,-4,4},{y,-4,4}];
Show[plot1]

f[x_,y_] = x^2 - y^2
Plot3D[f[x,y],{x,-4,4},{y,-4,4}]
plot1=ContourPlot[f[x,y],{x,-4,4},{y,-4,4}];
gradf = Grad[f[x,y],{x,y}]
plot2 = VectorPlot[gradf,{x,-4,4},{y,-4,4}];
Show[plot1]

f[x_,y_] = x^2+y^2
Plot3D[f[x,y],{x,-4,4},{y,-4,4}]
plot1=ContourPlot[f[x,y],{x,-4,4},{y,-4,4}];
gradf = Grad[f[x,y],{x,y}]
plot2 = VectorPlot[gradf,{x,-4,4},{y,-4,4}];
Show[plot1]

3D Level set

f[x_,y_,z_]=x^2+y^2-z^2
plot1=ContourPlot3D[f[x,y,z],{x,-4,4},{y,-4,4},{z,-4,4}];
gradf=Grad[f[x,y,z],{x,y,z}]
plot2=VectorPlot3D[gradf,{x,-4,4},{y,-4,4},{z,-4,4}];
Show[plot1,plot2]