The {figure} environment isn't limited to contain only figures etc. You can add anything so just type in your title above the figure.

\begin{figure}
\centering
\textbf{Your title}\par\medskip
\includegraphics[scale=0.3]{example-image}
\caption{Your caption}
\end{figure}
You can define a new command like \figuretitle to make the formatting and spacing consistent.
\newcommand*{\figuretitle}[1]{%
{\centering% <-------- will only affect the title because of the grouping (by the
\textbf{#1}% braces before \centering and behind \medskip). If you remove
\par\medskip}% these braces the whole body of a {figure} env will be centered.
}
Looks the same as above, but can be used as
\begin{figure}
\centering
\figuretitle{Your title}
\includegraphics[scale=0.3]{example-image}
\caption{Your caption}
\end{figure}
Or you can use the \caption above the figure. In this case you may use the caption package to adjust the spacing.

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
\captionsetup[figure]{
position=above,
}
\begin{document}
\begin{figure}
\centering
\caption{Your caption}
\includegraphics[scale=0.3]{example-image}
\end{figure}
\end{document}
matplotlib? Then you could also add a title there, though the font wouldn't match the document font. – Torbjørn T. Aug 14 '13 at 11:42