Generally it's better really to design the figure to fit (or scale by a fixed amount) scaling arbitrary sized figures to fit the page means that each scales by a different amount so you get inconsistent font sizes in each figure.
However for when you need it you can go
\begin{figure}[p]
\includegraphics[height=\dimexpr \textheight - 4\baselineskip\relax]{myfig}
\caption{zzzz}
\end{figure}
assuming 4 lines worth of space is enough for your caption and its surrounding space.
Using [p]
as clearly it can not fit on a text page if it is that big.
The trick is to use \ContinuedFloat
from the subfig
package. As you can see in page 5 of package documentation,
It sometimes occurs, especially when using sub-floats, that a single
figure needs to be continued across pages. The \ContinuedFloat
command
is placed at the beginning of the floating environment or after
changing \@captype
inside the floating environment to make the next
figure, table or other floating \caption
a continuation of the last
float \caption
of the same type. It does this by saving the sub-float
numbering internally and keeping the float numbering from advancing.
So, the MWE for the situation you described becomes something like this,
\documentclass{article}
\usepackage{subfig}
\usepackage{pgf}
\usepackage[a4paper,top=10.0mm,bottom=15.0mm]{geometry}
\begin{document}
\listoffigures
\def\mygraphcaption{Here are my graphs.}
\newlength{\mygraphwidth}\setlength{\mygraphwidth}{0.9\textwidth}
\begin{figure}[!tbp]
\centering
\subfloat[First Graph]{\pgfimage[width=\mygraphwidth]{mygraph1}}
\subfloat[Second Graph]{\pgfimage[width=\mygraphwidth]{mygraph2}}
\subfloat[Third Graph]{\pgfimage[width=\mygraphwidth]{mygraph3}}
\caption{\mygraphcaption}%
\label{fig:firstthree}%
\end{figure}
\begin{figure}[!tbp]
\ContinuedFloat
\centering
\subfloat[Fourth Graph]{\pgfimage[width=\mygraphwidth]{mygraph4}}
\subfloat[Fifth Graph]{\pgfimage[width=\mygraphwidth]{mygraph5}}
\subfloat[Sixth Graph]{\pgfimage[width=\mygraphwidth]{mygraph6}}
\caption{{\itshape(continued)} \mygraphcaption}%
\label{fig:lastthree}%
\end{figure}
\end{document}
And here are the output pages,
Since you indicated that graphs will be almost same width as text width, and you want to use a single caption, I have used length and macros to take care these issues. But as you definitely know, you can tweak them or use your own dimensions or more customized texts for the scenario.
The only downside of the solution as I can see is that you have to decide manually where to break the group. You need to go through some trial-and-error and put some in one page, the remainder in the next page, and so on. But I assume that you do not have many instances of these group of graphs and you can live with the manual tweaking. Please remember to keep the figure environments closely placed in the source file.
Also, please note that the !
before tbp
is important, that will help keeping your subgroup of graphs together.
Use of captcont
package will be another option.
Best Answer
EDIT: after Zarko's comment:
You can omit writing height