Here is a little example. It can be improved with a little work, specially visible and non-visible parts.
\documentclass[border=2mm]{standalone}
\usepackage {tikz}
\usetikzlibrary{3d}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[line cap=round,line join=round,x={(-0.5908cm,-0.4452cm)},y={(0.8068cm,-0.3260cm)},z={(0cm,0.8340cm)}]
\def\d{3} % Distance center-electron
\def\nr{1} % Nucleus radius
\def\er{0.5} % Electron radius
% Electron cooridnates
\coordinate (O) at ( 0, 0, 0);
\coordinate (A) at ( \d, 0, 0);
\coordinate (B) at ( 0, \d, 0);
\coordinate (C) at (-\d, 0, 0);
\coordinate (D) at ( 0,-\d, 0);
\coordinate (E) at ( 0, 0, \d);
\coordinate (F) at ( 0, 0,-\d);
% Octahedron
\draw[gray,fill=gray,fill opacity=0.3] (A) -- (B) -- (E) -- cycle;
\draw[gray,fill=gray,fill opacity=0.3] (A) -- (B) -- (F) -- cycle;
\draw[gray,fill=gray,fill opacity=0.3] (A) -- (D) -- (E) -- cycle;
\draw[gray,fill=gray,fill opacity=0.3] (B) -- (C) -- (E) -- cycle;
% Nucleus
\begin{scope}
\clip (0,0) circle (\nr cm);
\shade[inner color=green!50!black, outer color=gray] (0.5*\nr,0.25*\nr) circle (2*\nr cm);
\node[white] at (0,0) {\huge $n^+$};
\end{scope}
\draw[dashed,gray] (C) -- (D) -- (F) -- cycle;
% Electorns and axis
\foreach\i in {A,B,C,D,E,F}
{
\begin{scope}[shift={(\i)}]
\clip (0,0) circle (\er cm);
\shade[inner color=black, outer color=gray] (0.5*\er,0.25*\er) circle (2*\er cm);
\fill[white] (-0.6*\er cm,-0.04*\er cm) rectangle (0.6*\er cm,0.04*\er cm);
\end{scope}
\draw[very thick,dashed,shorten <=\nr cm,shorten >=\er cm] (O) -- (\i);
\draw[very thick,shorten <=\nr cm,shorten <=\er cm] (\i) -- ($2*(\i)$);;
}
% Axis labels
\node at ($2*(A)$) [left] {$x$};
\node at ($2*(B)$) [right] {$y$};
\node at ($2*(E)$) [above] {$z$};
\end{tikzpicture}
\end{document}
