I'd like to be able to use pgfplots to show a skier going down a ski slope. Here is what I have done so far.
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.7}
\makeatletter
\pgfkeyssetvalue{/pgf/shapes/ski/ski length}{1cm}
\pgfkeyssetvalue{/pgf/shapes/ski/ski radius}{.075cm}
\pgfkeyssetvalue{/pgf/shapes/ski/leg length}{.3cm}
\pgfkeyssetvalue{/pgf/shapes/ski/leg angle}{140}
\pgfkeyssetvalue{/pgf/shapes/ski/back length}{.5cm}
\pgfkeyssetvalue{/pgf/shapes/ski/head radius}{.1cm}
\pgfdeclareplotmark{skimark}{%
% ski
\pgfpathmoveto{\pgfpoint{-.5\pgfkeysvalueof{/pgf/shapes/ski/ski
length}}{-\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}
\pgfpathlineto{\pgfpoint{.5\pgfkeysvalueof{/pgf/shapes/ski/ski
length}}{-\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}
\pgfpatharc{-90}{0}{\pgfkeysvalueof{/pgf/shapes/ski/ski radius}}
\pgfsetlinewidth{.5mm}
\pgfusepath{stroke}
% body
\pgfpathmoveto{%
\pgfpoint{+0pt}{-\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}
\pgfpathlineto{\pgfpointorigin}
\pgfpathlineto{%
\pgfpointpolar{\pgfkeysvalueof{/pgf/shapes/ski/leg angle}}{%
\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}
\pgfpathlineto{\pgfpointadd{%
\pgfpointpolar{%
\pgfkeysvalueof{/pgf/shapes/ski/leg angle}}{%
\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}{%
\pgfpoint{%
\pgfkeysvalueof{/pgf/shapes/ski/back length}}{+0pt}}}
\pgfsetroundjoin
\pgfsetlinewidth{1mm}
\pgfusepath{stroke}
%
\pgfpathcircle{%
\pgfpointadd{%
\pgfpointpolar{%
\pgfkeysvalueof{/pgf/shapes/ski/leg angle}}{%
\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}{%
\pgfpoint{%
\pgfkeysvalueof{/pgf/shapes/ski/back length}}{+0pt}}}{%
\pgfkeysvalueof{/pgf/shapes/ski/head radius}}
\pgfusepath{fill}
}
\makeatother
\begin{document}
\begin{tikzpicture}
\begin{axis}[domain = 0:5,
]
\addplot+[mark = skimark,
only marks,
forget plot,
scatter,
scatter src = {-exp(-x)}] gnuplot[samples=5] {exp(-x)};
\addplot+[no markers] gnuplot[samples=30] {exp(-x)};
\end{axis}
\end{tikzpicture}
\end{document}

How can I use the scatter source information to rotate the markers so that the skier's skis are parallel to the slope (a bit of shifting would be good as well since I made a design error not defining the origin on the skis...) ?
Note: I can provide a ski shape as well.
\pgfdeclareshape{ski}{%
\anchor{center}{\pgfpointorigin}
\savedanchor\bottomleg{%
\pgfpoint{+0pt}{-\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}
%
\backgroundpath{%
% ski
\pgfpathmoveto{\pgfpoint{-.5\pgfkeysvalueof{/pgf/shapes/ski/ski
length}}{-\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}
\pgfpathlineto{\pgfpoint{.5\pgfkeysvalueof{/pgf/shapes/ski/ski
length}}{-\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}
\pgfpatharc{-90}{0}{\pgfkeysvalueof{/pgf/shapes/ski/ski radius}}
\pgfsetlinewidth{.5mm}
\pgfusepath{stroke}
% body
\pgfpathmoveto{\pgf@process{\bottomleg}}
\pgfpathlineto{\pgfpointorigin}
\pgfpathlineto{\pgfpointpolar{\pgfkeysvalueof{/pgf/shapes/ski/leg
angle}}{\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}
\pgfpathlineto{\pgfpointadd{%
\pgfpointpolar{%
\pgfkeysvalueof{/pgf/shapes/ski/leg angle}}{%
\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}{%
\pgfpoint{%
\pgfkeysvalueof{/pgf/shapes/ski/back length}}{+0pt}}}
\pgfsetroundjoin
\pgfsetlinewidth{1mm}
\pgfusepath{stroke}
%
\pgfpathcircle{%
\pgfpointadd{%
\pgfpointpolar{%
\pgfkeysvalueof{/pgf/shapes/ski/leg angle}}{%
\pgfkeysvalueof{/pgf/shapes/ski/leg length}}}{%
\pgfpoint{%
\pgfkeysvalueof{/pgf/shapes/ski/back length}}{+0pt}}}{%
\pgfkeysvalueof{/pgf/shapes/ski/head radius}}
\pgfusepath{fill}
%
}
}



@pre marker codekey that nearly works (I must be missing something obvious):/pgfplots/scatter/@pre marker code/.append code = {\pgfkeys{/pgf/fpu,pgf/fpu/output format=fixed} \pgfmathparse{atan(\pgfplotspointmeta)} \pgfkeys{/pgf/fpu = false} \pgftransformrotate{\pgfmathresult}}– cjorssen Jan 16 '13 at 14:08axis equal, and only if your function is monotonically decreasing. – Jake Jan 16 '13 at 14:47@pre marker codeas you suggested. For this to work we need to know the unit vectors of the axis, so eitheraxis equalhas to be set or you can usedisabledatascaling, which makes\pgfplotsunitxlengthand\pgfplotsunitylengthavailable. – Jake Jan 16 '13 at 15:44