# Issue with combining weighted data log histograms

I have a bit of a strange problem. I'd like to overlay 3 different logarithmic Histograms with two of them stacked and one separate [*]. Without weights the solution is simple:

data1 = RandomVariate[NormalDistribution[1, 3], 10^3];
data2 = RandomVariate[NormalDistribution[5, 3], 10^3];
data3 = RandomVariate[NormalDistribution[10, 3], 10^3];
Show[Histogram[{data1, data2}, ChartLayout -> "Stacked", ScalingFunctions -> {None, "Log"}],Histogram[data3, ChartStyle -> Red, ScalingFunctions -> {None, "Log"}]]


However, this doesn't look nice when I have weighted data and I can't figure out a way to fix it. The issue is that Mathematica doesn't know where to end the histogram of data1 and data2. I tried the following:

data1 = WeightedData[RandomVariate[NormalDistribution[1, 3], 10^3], Table[1, {i, 1, 10^3}]];
data2 = WeightedData[RandomVariate[NormalDistribution[5, 3], 10^3], Table[1, {i, 1, 10^3}]];
data3 = WeightedData[RandomVariate[NormalDistribution[10, 3], 10^3], Table[0.1, {i, 1, 10^3}]];

Show[Histogram[{data1, data2}, ChartLayout -> "Stacked", ScalingFunctions -> {None, "Log"}], Histogram[data3, ChartStyle -> Red, ScalingFunctions -> {None, "Log"}]]


which gives,

$\hspace{3cm}$

Swapping which histogram is first in Show makes things worse and playing with PlotRange was also no use.

[*] I emphasize that I'd like two of this histograms stacked because I think one can put all the histograms in a single Histogram function if this is not the case and there is no problem any more.

• This must be a Version 10.0.0 /10.0.1 issue; your code works as expected in Version 9 (Windows 8 64bit). If it is, perhaps it should have the version tag?
– kglr
Commented Sep 18, 2014 at 17:31
• @kguler: My version is indeed 10.0.0. I updated the tag. Commented Sep 18, 2014 at 17:40
• The issue remains in version 10.0.1.0.
– kglr
Commented Sep 18, 2014 at 17:43
• The issue remains in version 10.0.2; Can someone please check in 10.1.0, so to tag this as a bug (isn't it?). Also, does anyone know if this has been reported to WR? This problem also happens, for a single Histogram, where we enter a specific plot range. Commented May 23, 2015 at 19:37

Even the uneweighted data can have display (offset) problems when using Show. Also the data3 histogram obscures portions of the stacked histogram.

SeedRandom[500];

data1 = RandomVariate[NormalDistribution[1, 3], 10^3];
data2 = RandomVariate[NormalDistribution[5, 3], 10^3];
data3 = RandomVariate[NormalDistribution[10, 3], 10^3];

Show[
Histogram[{data1, data2},
ChartLayout -> "Stacked",
ScalingFunctions -> {None, "Log"}],
Histogram[data3,
ChartStyle -> Red,
ScalingFunctions -> {None, "Log"}],
Frame -> True, Axes -> False]


Create the stacked histogram data manually and use a single Histogram

data12 = Join[data1, data2]; (* stacked data *)

Histogram[{data12, data1, data3},
ScalingFunctions -> {None, "Log"},
Frame -> True, Axes -> False]


data1w = WeightedData[
RandomVariate[
NormalDistribution[1, 3], 10^3],
Table[1, {10^3}]];
data2w = WeightedData[
RandomVariate[
NormalDistribution[5, 3], 10^3],
Table[1, {10^3}]];
data3w = WeightedData[
RandomVariate[
NormalDistribution[10, 3], 10^3],
Table[0.1, {10^3}]];


Similarly for the weighted data

data12w = WeightedData[
Join[data1w[[2, 1]], data2w[[2, 1]]],
Join[data1w[[2, 2]], data2w[[2, 2]]]];
(* stacked data *)

Histogram[{data12w, data1w, data3w},
ScalingFunctions -> {None, "Log"}]