data2D=Table[{Sin[n],Sin[2n]},{n,25}];
ListPlot[data2D,BaseStyle->{FontSize->12},ImageSize->Large,AxesLabel->{"(Subscript[x, 1])","(Subscript[x, 2])"}]

plot2D[h_,kernel_]:=Plot3D[Evaluate@PDF[SmoothKernelDistribution[data2D,h,kernel],{x,y}],
{x,-1.5,1.5},{y,-1.5,1.5},
PlotRange->Full,
ImageSize->Large,
BaseStyle->{FontSize->12},
AxesLabel->{"(Subscript[x, 1])","(Subscript[x, 2])","(OverHat[p])((Subscript[x, 1]), (Subscript[x, 2]))"},
PlotLabel->"h = "<>ToString[h],
PlotPoints->50,
ViewPoint->{0,-2,2},
AxesEdge->{{-1,-1},{-1,1},{-1,-1}}
]

Manipulate[
plot2D[h,"Triangular"]
,{h,0.05,0.5}]

(*Do[
Export[
FileNameJoin[{
NotebookDirectory[],
"frames/kernels="<>ToString[({{\[Piecewise], ({{0, kernels=="Gaussian"}, {1, kernels=="SemiCircle"}, {2, kernels=="Triweight"}})}})]<>"h=00.png"
}],
Table[plot2D[h,kernels],{h,0.05,0.5,0.01}],
"VideoFrames",
Antialiasing->True
]
,{kernels,{"Gaussian","SemiCircle","Triweight"}}]*)

KNormal2D[x_]:=PDF[MultinormalDistribution[{0,0},(({{1, 0}, {0, 1}}))],x]

plotKernel[kernel_]:=Block[{K},
K[x_,y_]:=({{\[Piecewise], ({{KNormal2D[{x,y}], kernel=="Gaussian"}, {({{\[Piecewise], ({{((2 (Sqrt[1-(x^2)]))/π), -1<x<1}, {0, True}})}})*({{\[Piecewise], ({{((2 (Sqrt[1-(y^2)]))/π), -1<y<1}, {0, True}})}}), kernel=="SemiCircle"}, {({{\[Piecewise], ({{(35/32)(((1-(x^2)))^3), -1<x<1}, {0, True}})}})*({{\[Piecewise], ({{(35/32)(((1-(y^2)))^3), -1<y<1}, {0, True}})}}), kernel=="Triweight"}})}});

Plot3D[K[x,y],{x,-2,2},{y,-2,2},
PlotLabel->kernel,
PlotRange->Full,
ImageSize->Large,
BaseStyle->{FontSize->12},
AxesLabel->{"(Subscript[x, 1])","(Subscript[x, 2])","p((Subscript[x, 1]), (Subscript[x, 2]))"},
ViewPoint->{0,-2,2},
AxesEdge->{{-1,-1},{-1,1},{-1,-1}},
Exclusions->None
]
]

(*Do[
Export[
FileNameJoin[{
NotebookDirectory[],
"frames/kernel="<>ToString[({{\[Piecewise], ({{0, kernel=="Gaussian"}, {1, kernel=="SemiCircle"}, {2, kernel=="Triweight"}})}})]<>".png"
}],
plotKernel[kernel],
"VideoFrames",
Antialiasing->True
]
,{kernel,{"Gaussian","SemiCircle","Triweight"}}]*)