Hello,

First of all, I believe you want argument fill, not colour. In ggplot2 colour is about the border and fill about the interior.

As for the question,

1. Create a basic plot with the common aesthetics.


library(ggplot2)

pp_ALL <- iris[c(1, 5)]
names(pp_ALL) <- c("VALUE", "EXP")

p <- ggplot(data = pp_ALL, mapping = aes(x = VALUE, fill = EXP))



2. geom_density should use alpha transparency, since the densities overlap. colour = NA removes the densities black border.


p + geom_density(alpha = 0.5, colour = NA)


3. y = ..density.. plots relative frequencies histograms, for the default absolute frequencies or counts, comment the mapping out.

position = position_dodge() allows for extra goodies, such as to change the space between bars, their width or to keep empty spaces when some factor levels are missing (preserve = "single").

For the test data, with 50 elements per factor level, use a much smaller number of bins.

Package scales has functions to display labels in percent format, there is no need to multiply by 100.


p + geom_histogram(
  mapping = aes(y = ..density..),
  position = position_dodge(),
  bins = 10)

p + geom_histogram(
  mapping = aes(y = ..density..),
  position = position_dodge(),
  bins = 10) +
  scale_y_continuous(labels = scales::label_percent())


Hope this helps,

Rui Barradas


Às 07:43 de 25/02/21, Bogdan Tanasa escreveu:
Thanks a lot Petr !

shall i uses "dodge" also for the RELATIVE FREQUENCY HISTOGRAMS :

p <- ggplot(iris, aes(x=Sepal.Length, y=..count../sum(..count..)*100,
colour=Species))
p+geom_histogram(position="dodge")

or is there any other way to display the RELATIVE FREQUENCY HISTOGRAMS ?

thanks again !

On Wed, Feb 24, 2021 at 11:00 PM PIKAL Petr <petr.pi...@precheza.cz> wrote:

Hi

You should use position dodge.

p <- ggplot(iris, aes(x=Sepal.Length, colour=Species))
p+geom_density()
p <- ggplot(iris, aes(x=Sepal.Length, y=..density.., colour=Species))
p+geom_histogram(position="dodge")

Cheers
Petr
-----Original Message-----
From: R-help <r-help-boun...@r-project.org> On Behalf Of Bogdan Tanasa
Sent: Wednesday, February 24, 2021 11:07 PM
To: r-help <r-help@r-project.org>
Subject: [R] overlaying frequency histograms or density plots in R

Dear all, we do have a dataframe with a FACTOR called EXP that has 3
LEVELS ;

  head(pp_ALL)
     VALUE  EXP
1 1639742 DMSO
2 1636822 DMSO
3 1634202 DMSO

shall i aim to overlay the relative frequency histograms, or the density
histograms for the FACTOR LEVELS,

please would you let me know why the following 2 pieces of R code show
very different results :

ggplot(pp_ALL, aes(x=VALUE, colour=EXP)) + geom_density()

versus

ggplot(data=pp_ALL) +
        geom_histogram(mapping=aes(x=VALUE, y=..density.., colour=EXP),
  bins=1000)

thanks,

bogdan

ps : perhaps i shall email to the folks on ggplot2 mailing list too ...

       [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-
guide.html
and provide commented, minimal, self-contained, reproducible code.


        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to