I created a stacked histogram with a data of this nature:
> haps
tot K7a
1 1 2
2 7 1
3 1 4
4 8 3
5 1 6
tot is counts of observations of each element, (I am showing only 5 elements of the 1899 in the table above), K7a is a factor with 7 levels. The data should be read e.g. as: element 1 is observed once and belongs to group 2, ... element 4 is observed 8 times and belongs to group 3, etc.
with the following code I get a histogram in B&W:
ggplot(haps, aes(x=tot) +
geom_histogram(binwidth = 0.5) +
scale_y_continuous(trans="log1p", breaks = c(1, 2, 3, 4, 5, 10, 15, 20, 25, 50, 100, 500, 1000, 1500, 2000)) +
scale_x_continuous(limits = c(0, 20), breaks = c(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20))+
theme_gray(base_size = 10) + labs(x = "Haplotype repeats", y = "Number of events" )
Then I want to add colour to the 7 groups, and I use the following code, simply adding fill to aes:
ggplot(haps, aes(x=tot, fill=K7a)) +
geom_histogram(binwidth = 0.5) +
scale_y_continuous(trans="log1p", breaks = c(1, 2, 3, 4, 5, 10, 15, 20, 25, 50, 100, 500, 1000, 1500, 2000)) +
(limits = c(0, 20), breaks = c(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20))+
theme_gray(base_size = 10) + labs(x = "Haplotype repeats", y = "Number of events" )
the second graph changes the y scale even though I use the same code, I can't figure out how to get a graph with the same scale as in the black & white one.


Not really sure what's happening. My best guess is the transformation is applied only to the
yscale and not to thefillscale.You can 'work around' this issue applying the transformation after all the calculations have been made using
coord_trans():Created on 2020-10-18 by the reprex package (v0.3.0)