2 of 5 Added solution using DensityPlot; added 278 characters in body

It seems like none of the answers I see up to now are actually producing heat maps. The difference between a heat map and a ListDensityPlot is important. In Mathematica vocabulary, the heat map is a SmoothDensityHistogram.

First of all, I tried to directly use the 'heatMap' function in my answer. I just tried it with the data in that post:

data = RandomReal[1, {100, 2}];

Show[heatMap[data, "Points" -> 300, "Radius" -> {10, .02},
PlotRange -> {{0, 1}, {0, 1}},
ColorFunction -> ColorData["Rainbow"]], Graphics[Point@data],
PlotRange -> {{0, 1}, {0, 1}}]


All I did is to specify a tuple {10, .02} for the "Radius" option. Its first entry is the radius in the vertical direction, and with a choice of 10 this smears all the data out over the entire vertical image range.

This shows it works without modifying the code. But of course I have to tweak the function in order to make it look more "one-dimensional":

heatMap[data_, opts : OptionsPattern[]] :=
Module[{n, size, xRange, pr},
n = "Points" /. {opts} /. {"Points" -> 100};
pr = PlotRange /. {opts} /. {PlotRange :>
Map[{Min[#], Max[#]} &, Transpose[data]]};
xRange = -Subtract @@ pr[[1]];
size = Floor[
Graphics[
{Inset[
ArrayPlot[
Rescale@GaussianFilter[
ImageData@ColorNegate@ColorConvert[
Rasterize[
Graphics[
Point[data],
Background -> White,
ImageMargins -> 0,
PlotRange -> pr
],
"Image",
ImageSize -> n
],
"GrayScale"
],
{3 size, size},
],
ColorFunction -> (ColorFunction /. {opts} /. {ColorFunction ->
ColorData["LakeColors"]}),
Frame -> False
],
pr[[All, 1]],
{0, 0}, xRange]},
PlotRange -> pr,
Frame -> True,
FrameTicks -> {Automatic, None}
]
]


So here I removed the PlotRangePadding and the FrameTicks on the left side, as well as the PlotRangePadding. I think that's all you need to change. Having collapsed the data onto a single axis, the vertical smearing for GaussianFilter needs to be only of order 1 (in relation to the horizontal axis) - so that's what I used. Then I set the PlotRange appropriately and get this:

data = RandomReal[{0, 1}, 100];
data = {#, 0} & /@ data;

heatMap[data, "Points" -> 300, "Radius" -> {1, .02},
PlotRange -> {{0, 1}, {0, .04}}, PlotRangePadding -> 0,
FrameLabel -> None]


The meaning of the option "Points" (number of horizontal sampling points) is the same as described in the linked post.

Edit

As I mentioned, a heat map is also realizable using built-in smoothed histogram techniques. I think the easiest way to do that in the present case would be as follows:

DensityPlot[
Evaluate@PDF[SmoothKernelDistribution[data, {1, .02}], {y, x}], {x,
0, 1}, {y, 0, .2}, AspectRatio -> Automatic, PlotPoints -> {200, 2},
FrameTicks -> {Automatic, None}, PlotRangePadding -> None]


The unequal smearing is now achieved by specifying a tuple for the "bandwidth" parameter in SmoothKernelDistribution: in {1, .02}, the 1 is again chosen to be large compared to the plot range in the y direction (from 0 to .2) so that you get vertical bands. It's of also necessary to adjust the number of PlotPoints to be large enough in the horizontal direction so as to capture all the details of the distribution. The vertical number of PlotPoints (the second number in {200, 2}) can be set to the smallest possible value, 2.