I present an asymptote
example because this yields the arguably nicer output. However, the parametrization of the half-torus can be used for other packages as well.
\documentclass{article}
\usepackage[inline]{asymptote}
\begin{document}
\thispagestyle{empty}
\begin{asy}
size(200);
import graph3;
currentprojection=perspective(5,6,3);
real R=4;
real a=1;
triple fs(pair t) {
return ((R+a*Cos(t.y))*Cos(t.x),(R+a*Cos(t.y))*Sin(t.x),a*Sin(t.y));
};
surface s=surface(fs,(0,180),(360,360),8,8,Spline);
draw(s,surfacepen=material(green+opacity(0.6), emissivepen=0.2*white),render(compression=Low,merge=true));
xaxis3(Label("$x$",1),xmin=0,xmax=7,Arrow3);
yaxis3(Label("$y$",1),ymin=0,ymax=7,Arrow3);
zaxis3(Label("$z$",1),zmin=0,zmax=4,Arrow3);
draw((4/sqrt(2),4/sqrt(2),-1)--(4/sqrt(2),4/sqrt(2),-4),blue,Arrow3);
\end{asy}
\end{document}
Of course, one needs to run asy
between two compilations.

It is possible to draw similar picture with pgfplots
.
\documentclass[svgnames]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=center,
axis equal,
domain=0:360,
y domain=180:360,
ticks=none,
view={130}{-35}
]
\addplot3 [surf, color=green, opacity=0.1,faceted
color=green!50!black,fill opacity=0.5%,faceted color=blue,z buffer=sort
]({(4+cos(y))*cos(x)},{(4+cos(y))*sin(x)},{sin(y)-0.01});
\end{axis}
\end{tikzpicture}
\end{document}

However, the outcome is, arguably, less appealing. Of course, with additional effort one may improve this. On the other hand, the nice thing about asymptote
is that there this additional effort is not necessary.
tikz-3dplot
, have you tried that package? You should include some code for us to build off of (even just drawing the axes), rather than just asking for us to do the whole thing.