Pendulum

V[x_]:=-Cos[x];
En[x_,v_]:=1/2*v^2V[x];

Plot[V[x],{x,-2*π,2*π},AxesLabel->{"X","V(X)"},TicksStyle->Directive[Black, 14],PlotStyle->{Thickness[.005],Blue},AxesStyle->{{Black,Thick},{Black,Thick}}]

plot1=Plot3D[1/2*v^2+V[x],{v,-3,3},{x,-2*π,2*π},PlotRange->{-2.2,2},ClippingStyle->None,MeshFunctions->{#3&},Mesh->15,MeshStyle->Opacity[.5],MeshShading->{{Opacity[.3],Blue},{Opacity[.8],Orange}},Lighting->"Neutral",ViewPoint->{6,3,2},AxesLabel->{"v","X","V(X)"},TicksStyle->Directive[Black, 14],AxesStyle->{{Black,Thick},{Black,Thick},{Black,Thick}},Boxed->False,ImageSize->Large]

plot2=SliceContourPlot3D[1/2*v^2+V[x],z==-2,{v,-3,3},{x,-2*π,2*π},{z,-2-1,-2+1},PlotRange->{-2,2},Contours->15,Axes->False,PlotPoints->50,PlotRangePadding->0,ColorFunction->"DarkRainbow",Boxed->False]

Show[plot1,plot2]

s=NDSolve[{x''[t]+V'[x[t]]==0,x[0]==0,x'[0]==2},x,{t,0,30}]
plot1=Plot[Evaluate[x[t]/.s],{t,0,30},PlotRange->All,PlotStyle->{Red,Thickness[.005],Bold},AxesLabel->{"t","X(t)"},AxesStyle->{{Black,Thick},{Black,Thick}},TicksStyle->Directive[Black, 14]];
s=NDSolve[{x''[t]+V'[x[t]]==0,x[0]==0,x'[0]==1.8},x,{t,0,30}]
plot2=Plot[Evaluate[x[t]/.s],{t,0,30},PlotRange->All,PlotStyle->{Yellow,Thickness[.005],Bold},AxesLabel->{"t","X(t)"},AxesStyle->{{Black,Thick},{Black,Thick}},TicksStyle->Directive[Black, 14]];
s=NDSolve[{x''[t]+ V'[x[t]]==0,x[0]==0,x'[0]==1/2},x,{t,0,30}]
plot3=Plot[Evaluate[x[t]/.s],{t,0,30},PlotRange->All,PlotStyle->{Blue,Thickness[.005],Bold},AxesLabel->{"t","X(t)"},AxesStyle->{{Black,Thick},{Black,Thick}},TicksStyle->Directive[Black, 14]];
Show[plot3,plot2,plot1]

cubic

V[x_]:=x^3/3-x^2/2;
En[x_,v_]:=1/2*v^2V[x];

Plot[V[x],{x,-2,2},AxesLabel->{"X","V(X)"},TicksStyle->Directive[Black, 14],PlotStyle->{Thickness[.005],Blue},AxesStyle->{{Black,Thick},{Black,Thick}}]

plot1=Plot3D[1/2*v^2+V[x],{v,-3,3},{x,-2,2},PlotRange->{-2.2,2},ClippingStyle->None,MeshFunctions->{#3&},Mesh->15,MeshStyle->Opacity[.5],MeshShading->{{Opacity[.3],Blue},{Opacity[.8],Orange}},Lighting->"Neutral",ViewPoint->{6,3,2},AxesLabel->{"v","X","V(X)"},TicksStyle->Directive[Black, 14],AxesStyle->{{Black,Thick},{Black,Thick},{Black,Thick}},Boxed->False,ImageSize->Large]

plot2=SliceContourPlot3D[1/2*v^2+V[x],z==-2,{v,-3,3},{x,-2,2},{z,-2-1,-2+1},PlotRange->{-2,2},Contours->15,Axes->False,PlotPoints->50,PlotRangePadding->0,ColorFunction->"DarkRainbow",Boxed->False]

Show[plot1,plot2]

s=NDSolve[{x''[t]+V'[x[t]]==0,x[0]==0,x'[0]==1.154},x,{t,0,30}]
plot1=Plot[Evaluate[x[t]/.s],{t,0,30},PlotRange->All,PlotStyle->{Red,Thickness[.005],Bold},AxesLabel->{"t","X(t)"},AxesStyle->{{Black,Thick},{Black,Thick}},TicksStyle->Directive[Black, 14]];
s=NDSolve[{x''[t]+V'[x[t]]==0,x[0]==0,x'[0]==1},x,{t,0,30}]
plot2=Plot[Evaluate[x[t]/.s],{t,0,30},PlotRange->All,PlotStyle->{Yellow,Thickness[.005],Bold},AxesLabel->{"t","X(t)"},AxesStyle->{{Black,Thick},{Black,Thick}},TicksStyle->Directive[Black, 14]];
s=NDSolve[{x''[t]+ V'[x[t]]==0,x[0]==0,x'[0]==1/4},x,{t,0,30}]
plot3=Plot[Evaluate[x[t]/.s],{t,0,30},PlotRange->All,PlotStyle->{Blue,Thickness[.005],Bold},AxesLabel->{"t","X(t)"},AxesStyle->{{Black,Thick},{Black,Thick}},TicksStyle->Directive[Black, 14]];
Show[plot3,plot2,plot1]