An alternative approach is to use the option ChartElementFunction
with a function that modifies the built-in functions to change the appropriate element of rectangle coordinates:
SeedRandom[1]
data = RandomVariate[NormalDistribution[0, 0.6], 1000];
Histogram[data, {-2, 2, .2},
ChartElementFunction -> (ChartElementData["Rectangle"][{{1, 1}, {1, .5}} #, ##2] &)]

The advantages of this approach are (1) you can use other built-in height functions such as "PDF"
without additional work, (2) you can have multiple datasets each with its own scaling (as long as you don't need them "Stacked"
), and (3) you can use the tooltips to see the unscaled values of bar heights.
The simple method above works only for the default setting ("Bottom"
) for the option BarOrigin
. The following function makes this approach work for non-default BarOrigin
settings:
ClearAll[ceF]
ceF[sc_ : 1][cedf_ : "Rectangle", o : OptionsPattern[]] :=
Module[{origin = Charting`ChartStyleInformation["BarOrigin"], box = #},
Switch[origin,
Bottom, box[[2, 2]] = sc box[[2, 2]],
Top, box[[2, 1]] = sc box[[2, 1]],
Left, box[[1, 2]] = sc box[[1, 2]],
Right, box[[1, 1]] = sc box[[1, 1]]];
ChartElementDataFunction[cedf, o][box, ##2]] &;
Examples:
Histogram[data, {-2, 2, .2}, "PDF", ImageSize -> 300,
BarOrigin -> Bottom, ChartElementFunction -> ceF[.5][] ]

Histogram[data, {-2, 2, .2}, ColorFunction -> "Rainbow",
ImageSize -> 200, BarOrigin -> #,
ChartElementFunction -> ceF[.5][]] & /@ {Bottom, Top, Left, Right} //
Grid[Partition[#, 2], Dividers -> All] &

Multiple datasets each with its own scaling:
Histogram[{data, data}, {-2, 2, .2}, ChartElementFunction -> {ceF[.5][], ceF[.8][]}]
