I have the following figure:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage[active,float]{preview}
\usetikzlibrary{calc}
\usetikzlibrary{plotmarks,arrows,automata,positioning,fit,shapes.geometric,backgrounds}
\usepackage{graphicx}
\PreviewEnvironment{tikzpicture}
\begin{document}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=4cm,
thick,main node/.style={circle,fill=blue!20,draw,font=\sffamily\Large\bfseries}]
\tikzstyle{every path}=[line width=2pt]
\node[main node] (1) {$m_0$};
\node[rectangle,fill=gray] (0) [above of=1] {\Large $\textbf{Source}$};
\node[main node,fill=white,xshift=1.5cm] (3) [below left of=1] {v$_j$};
\node[main node,fill=white,xshift=-1.5cm] (4) [below right of=1] {v$_k$};
\node[main node,fill=white,xshift=1.5cm] (2) [left of=3] {v$_i$};
\node[main node,fill=black,scale=.2] (dot_ij) at ($(2)!0.5!(3)$) {b};
\node[main node,fill=black,scale=.2] (dot_jk) at ($(3)!0.5!(4)$) {b};
\node[main node,fill=white,xshift=-1.5cm] (5) [right of=4] {v$_l$};
\node[main node,fill=black,scale=.2] (dot_kl) at ($(4)!0.5!(5)$) {b};
\node[main node] (6) [below of=dot_jk] {$m_1$};
\node[rectangle,fill=gray] (7) [below of=6] {\Large $\textbf{Sink}$};
\node[fit=(3) (4),ellipse,fill=red!30,draw=red,fill opacity=0.3,xscale=0.75,yscale=1] {};
\path[every node/.style={font=\sffamily\Large\bfseries}]
(0) edge node [right] {$r_0$} (1)
(1) edge node [below right=-0.8cm and -1cm] {$w_j\theta_d$} (3)
(1) edge node [above left=0cm and -1cm] {$w_k\theta_d$} (4)
(2) edge node [above left=-0.8cm and -0.2cm] {$w_j\theta_a$} (6)
(3) edge node [left] {$w_k\theta_a$} (6)
(4) edge node [right] {$w_j\theta_a$} (6)
(5) edge node [above left=-0.7cm and -1.1cm] {$w_k\theta_k$} (6)
(6) edge node [left] {$r_1$} (7);
\end{tikzpicture}
I want to align all the labels defined for each label horizontally. In other words I want to horizontally align $w_j$
with $w_k$
and $w_i$
,$w_j$
,$w_k$
,$w_l$
respectively.