(It is a little bit difficult to say for sure, but I think I know why this happens. At least partly.)
There are two problems relating to the paragraph settings of the paragraphs containing the floats that can produce additional whitespace.
1. Empty paragraphs
If you look at the LaTeX source of one of the figures you'll see something like
\noindent
\begin{figure}
...
The problem here is the \noindent
which comes from the paragraph settings in LyX. What you should do is right click just outside each figure, choose Paragraph settings, and check the box for Indent paragraph. If you have the source view open you'll see that the \noindent
disappears when you click OK/Apply.
2. Centred alignment
For two of the figures (second and third last in your example) the alignment of the paragraph with the figure is set to Center, and if you look in the code you see something like
\begin{center}
\begin{figure}
...
\end{figure}
\par\end{center}
The surrounding center
environment should be removed, by setting the paragraph alignment to Paragraphs default (justified).
So, why?
To demonstrate how this can give extra whitespace, consider the following LaTeX code, the output is shown below it:
\documentclass{article}
\begin{document}
Some words.
\noindent
More words.
\noindent \begin{figure}
This is a figure.
\end{figure}
Words
\begin{center}
\begin{figure}
Another figure
\end{figure}
\end{center}
More.
\end{document}
One or more empty line(s) signifies that a new paragraph should start, and new paragraphs are by default indicated by indentation. \noindent
lets you remove this indentation for a single paragraph.
Now in the code above, the first \noindent
does nothing, because there isn't anything there that can start a new paragraph. So you see that there is no extra space between Some words
and More words
. In the second case however, the \begin{figure}
causes a new paragraph to start, but the only thing in it -- the figure itself -- floats away, so you're left with an empty paragraph.
Further, the center
environment adds some verticl whitespace before and after, and when the only thing inside it is a figure
that floats away, you're left with just that vertical whitespace.
A possible, very manual solution:
\documentclass[]{article}
\usepackage{multicol}
\usepackage{duckuments}% for dummy content
\usepackage[]{graphicx}
\usepackage{capt-of}% if you load the caption package you don't need this
\begin{document}
\begin{multicols}{2}
\blindduck[-]
\end{multicols}
\begin{figure}[htp]% >>>
\centering
\includegraphics[width=.7\linewidth]{example-image-duck}%
\caption
{%
A happy duck%
\label{fig:duck}%
}%
\end{figure}% <<<
\begin{multicols}{2}
\blindduck[-]
\end{multicols}
\clearpage
\begin{multicols}{2}
\blindduck[1-4]
\vskip\intextsep
\noindent\begin{minipage}{\linewidth}
\centering
\includegraphics[width=.7\linewidth]{example-image-duck}%
\captionof{figure}
{%
A happy canard with a long caption being placed correctly%
\label{fig:canard}%
}%
\end{minipage}
\vskip\intextsep
\blindduck[full]
\end{multicols}
\end{document}
Output of the full width figure:
Output of the single column figure:
Best Answer
You can achieve something similar with a couple of minipages, as outlined below. Please ask if anything is unclear.
\centering
in an ERT.