Here's a quick attempt to automate percusse's solution:

Here's the main file:
\documentclass[tikz,border=5mm]{standalone}
\usepackage{tikz}
\usepackage{fade-no-fill}
\begin{document}
\begin{tikzpicture}
\draw[style=help lines] (0,-2) grid[step=1cm] (2,0);
\path[
fade path but don't fill={
very thick,
transparent!20,
->
}{
top color=blue!80,
bottom color=green!80,
},
] (0cm,0cm) .. controls +(0cm,-1cm) and +(0cm,1cm) .. (1cm,-2cm);
\begin{scope}[x=0.5cm,y=0.5cm]
% Circles, each with a distinct fading
\foreach \i in {1,...,5}{
\pgfmathsetmacro{\j}{18*\i}
\path[
fade path but don't fill={
very thick,
transparent!\j,
}{
top color=green!80,
bottom color=blue!80,
shading angle=45,
},
] (1+\i,-\i) circle (\i mm);
}
% Circles, with a global fading
\path[
fade path but don't fill={
very thick,
transparent!60,
}{
top color=blue!80,
bottom color=green!80,
},
] foreach \i in {1,...,5}{
(\i-1,-\i-3) circle (\i mm)
};
\end{scope}
\end{tikzpicture}
\end{document}
You will need to paste the following code into fade-no-fill.sty, which uses the spath library from the TeX.SX package. You will therefore need to download spath.dtx, run it with pdflatex spath.dtx and copy the resulting spath.sty in the same folder.
\usetikzlibrary{intersections}% for "name path".
\usetikzlibrary{math}%
\usetikzlibrary{fadings}%
\usepackage{spath}% for "use path", from the TeX.SX package
% at http://bazaar.launchpad.net/~tex-sx/tex-sx/development/files
\usepgfmodule{oo}% for spath
\usetikzlibrary{arrows.meta}% needed so that bounding boxes correctly include arrows.
% Copied from https://tex.stackexchange.com/a/26386/5699
\tikzset{
use path for main/.code={%
\tikz@addmode{%
\expandafter\pgfsyssoftpath@setcurrentpath\csname tikz@intersect@path@name@#1\endcsname
}%
},
use path for actions/.code={%
\expandafter\def\expandafter\tikz@preactions\expandafter{\tikz@preactions\expandafter\let\expandafter\tikz@actions@path\csname tikz@intersect@path@name@#1\endcsname}%
},
use path/.style={%
use path for main=#1,
use path for actions=#1,
}
}
\tikzset{
fade path but don't fill/.style 2 args={
preaction={save path=\tmppath,},
postaction={
/utils/exec={
\coordinate (oldbb-ne) at (current bounding box.north east);
\coordinate (oldbb-sw) at (current bounding box.south west);
\pgfresetboundingbox
\begin{tikzfadingfrompicture}[name=tempfade]%
\pgfresetboundingbox
\pgfoonew \thepathsav=new spath(\tmppath)
\thepathsav.use path with tikz(draw,#1)
\coordinate (temp-fade-bb-ne) at (current bounding box.north east);
\coordinate (temp-fade-bb-sw) at (current bounding box.south west);
\coordinate (temp-fade-bb-center) at (current bounding box.center);
\end{tikzfadingfrompicture}
%
\useasboundingbox (oldbb-ne) rectangle (oldbb-sw);
%
\tikzmath{
coordinate \ctempfadebbcenter;
\ctempfadebbcenter = (temp-fade-bb-center);
}
\tikzset{tempstyle/.style/.expand once={#2}}
\path[
path fading=tempfade,
fit fading=false,
fading transform={
yshift=\ctempfadebbcentery,
xshift=\ctempfadebbcenterx,
},
tempstyle,
] (temp-fade-bb-ne) rectangle (temp-fade-bb-sw);
},
},
},
}