TikZ – Creating Complex Venn Diagrams

tikz-pgfvenn-diagrams

Further to my question on Venn diagrams overlapping color filling, I have the following MWE:

\documentclass{book}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{shapes,fadings,patterns}
\begin{document}
\begin{figure}[h]\centering
\pagestyle{empty}
\def\firstcircle{(0,0) circle (2.0cm)}
\def\secondcircle{(360:3.5cm) circle (2.0cm)}
\begin{tikzpicture}
\begin{scope}
    \fill[style=shade, top color=white, bottom color=brown!80!black!20][black] \firstcircle;
    \fill[style=shade, top color=white, bottom color=cyan!80!black!20 ][black] \secondcircle;
    \draw \firstcircle node{\textsc{Rules-Based (Passive)}};
    \draw \secondcircle node{\textsc{Bet Against Market Portfolio (Active)}};
     \clip \firstcircle;
  \fill[red][fill opacity=0.6]\secondcircle;
\end{scope}
\end{tikzpicture}
\end{figure}
\end{document}

However, instead of output (bottom picture) I want to achieve a Venn-diagram that includes circles and can handle longer text; similar to this (upper picture in blue and purple): How to achieve this?Double Venn

Best Answer

A possible implementation with the new Blend Modes feature from TikZ v. 3.0.0 (see What are the new features in TikZ/pgf 3.0?). This allows to avoid using some clip operation:

\documentclass[tikz,border=10pt]{standalone}

\begin{document}
\def\firstcircle{(0,0) circle (3.0cm)}
\def\secondcircle{(360:3.5cm) circle (3.0cm)}
\begin{tikzpicture}[blend group=screen]
\begin{scope}[fill opacity=0.3,text opacity=1,white,align=center,text width=2.5cm]
    \draw[fill=blue!50!cyan!60!black] \firstcircle 
    node[shift={(-.75,1)},text=blue!50!cyan!60!black]{\textsc{Rules-Based (Passive)}};
    \draw[fill=violet!60!red] \secondcircle 
    node[shift={(.75,1)},text=violet!60!red]{\textsc{Bet Against Market Portfolio (Active)}};
    \node[text=white] at (1.65,0){\textsc{Strategic Beta}};
    \begin{scope}[scale=0.8,transform shape,align=center,white,fill opacity=1]% little circles
    \draw[fill=blue!50!cyan!60!black](-0.5,-1.25)circle(1.45cm) 
     node[text width=2.25cm,text=white] {\textsc{Market-Cap\\ Weighted}};

     \draw[fill=violet!60!red](6,-1.25)circle(1.35cm) 
     node[text width=2.25cm,text=white] {\textsc{Actively\\ Managed}};
    \end{scope}
\end{scope}
\end{tikzpicture}

\end{document}

The result:

enter image description here