Skip to content

series of densities

5 messages · Troels Ring, David Winsemius, William Michels

#
Dear friends
I'm trying to plot in silico derived values of 3 types of 
buffer-capacities? over pH values and want densities of the three types 
together at each pH with the pH values on the abscissa.

I have generated some data

set.seed(2345)
pHs <- c(7.2,7.4,7.6)
pH <- rep(pHs,each=30)
BC <- rep(rep(c(20,10,10),each=10),3)+rnorm(90,0,5)
type <- rep(rep(c("TOT","NC","CA"),each=10),3)

ddd <- data.frame(pH,BC,type)

GG <- ggplot()
for (i in 1:3) {
 ? dd <- ddd[ddd$pH==pHs[i],]
 ? GG <- GG + geom_density(data=dd,aes(x=BC,fill=type),alpha=0.1)
}
GG

but here I only get all pH values? plotted together whereas I want 3 
series in the vertical direction at the three pH values.

I wonder how this could be done?

All best wishes

Troels Ring, MD
Aalborg, Denmark

PS: Windows 10,

R version 4.0.5 (2021-03-31
#
On 5/17/21 7:44 AM, Troels Ring wrote:
Are you perhaps hoping for means of grouped values connected by lines?


Of perhaps a bee-swarm type plot? there are quite a few overlapping points.


-- --

David.
#
On 5/17/21 7:44 AM, Troels Ring wrote:
Here are two different displays of the data. I haven't figured out what 
was intended by the request for " 3 series in the vertical direction at 
the three pH values".

library(ggplot2)

#violin plots are density-like

ggplot( data=ddd, aes(x=pH, y=BC,group=interaction(type,pH), 
col=type))+geom_violin()

#boxplots are summary methods

ggplot( data=ddd, aes(x=pH, y=BC,group=interaction(type,pH), 
col=type))+geom_boxplot()
#
Hi Troels,

Have you considered using Lattice graphics?
Adapting from examples on the help page:
xlab  = "BC", layout = c(1, 3), aspect = 0.618,
   strip = strip.custom(strip.levels=c(TRUE,TRUE)),
   panel = function(x, ...) {
   panel.histogram(x, ...)
   panel.mathdensity(dmath = dnorm, col = 1,
   args = list(mean=mean(x), sd=sd(x)) )
   } )


HTH, Bill.

W. Michels, Ph.D.
On Mon, May 17, 2021 at 8:12 AM Troels Ring <tring at gvdnet.dk> wrote:
#
Thanks a lot to David and William - I think

ggplot( data=ddd, aes(x=pH, y=BC,group=interaction(type,pH), 
col=type))+geom_boxplot()

was very helpful!

All best

Troels

Den 18-05-2021 kl. 02:27 skrev David Winsemius: