Code:
# Import data in columns (header = top row)
b<-read.table('/media/sdhome/black.txt',header=T,fill=TRUE)
w<-read.table('/media/sdhome/white.txt',header=T,fill=TRUE)
bf<-read.table('/media/sdhome/blackf.txt',header=T,fill=TRUE)
wf<-read.table('/media/sdhome/whitef.txt',header=T,fill=TRUE)
#Divide into 4 plot areas vertically
par(mfcol=c(4,1))
# Draw histogram b
hb<-hist(b$b,xlim=c(floor(min(300,300)),ceiling(max(500,500))),ylim=c(floor(min(0,0)),ceiling(max(160,160))), xlab='BM',main=' ',breaks=15,col="beige")
# Create N distribution plot to match
bxfit<-seq(min(300),max(500),length=40)
byfit<-dnorm(bxfit,mean=mean(b$b),sd=sd(b$b))
byfit <- byfit*diff(hb$mids[1:2])*length(b$b)
# Create N distribution for histogram w
wxfit<-seq(min(300),max(500),length=40)
wyfit<-dnorm(wxfit,mean=mean(w$w),sd=sd(w$w))
wyfit <- wyfit*diff(hb$mids[1:2])*length(b$b)
lines(bxfit, byfit, col="red", lty=1, lwd=2)
# lines(wxfit, wyfit, col="blue", lty=2, lwd=2)
# Draw 2nd histogram w
hw<-hist(w$w,xlim=c(floor(min(300,300)),ceiling(max(500,500))),ylim=c(floor(min(0,0)),ceiling(max(160,160))), xlab='WM',main=' ',breaks=15,col="beige")
# Create N distribution to fit w
bxfit<-seq(min(300),max(500),length=40)
byfit<-dnorm(bxfit,mean=mean(b$b),sd=sd(b$b))
byfit <- byfit*diff(hw$mids[1:2])*length(w$w)
wxfit<-seq(min(300),max(500),length=40)
wyfit<-dnorm(wxfit,mean=mean(w$w),sd=sd(w$w))
wyfit <- wyfit*diff(hw$mids[1:2])*length(w$w)
# Draw N distributions
lines(wxfit, wyfit, col="blue", lty=1, lwd=2)
# lines(bxfit, byfit, col="red", lty=2, lwd=2)
# Draw histogram bf
hbf<-hist(bf$b,xlim=c(floor(min(300,300)),ceiling(max(500,500))),ylim=c(floor(min(0,0)),ceiling(max(20,20))), xlab='BF',main=' ',breaks=15,col="grey")
# Create N distribution plot to match
bfxfit<-seq(min(300),max(500),length=40)
bfyfit<-dnorm(bfxfit,mean=mean(bf$b),sd=sd(bf$b))
bfyfit <- bfyfit*diff(hbf$mids[1:2])*length(bf$b)
# Create N distribution for histogram w
wfxfit<-seq(min(300),max(500),length=40)
wfyfit<-dnorm(wfxfit,mean=mean(wf$w),sd=sd(wf$w))
wfyfit <- wfyfit*diff(hbf$mids[1:2])*length(bf$b)
lines(bfxfit, bfyfit, col="brown", lty=1, lwd=2)
# lines(wfxfit, wfyfit, col="purple", lty=2, lwd=2)
# Draw 2nd histogram w
hwf<-hist(wf$w,xlim=c(floor(min(300,300)),ceiling(max(500,500))),ylim=c(floor(min(0,0)),ceiling(max(50,50))), xlab='WF',main=' ',breaks=15,col="grey")
# Create N distribution to fit w
bfxfit<-seq(min(300),max(500),length=40)
bfyfit<-dnorm(bfxfit,mean=mean(bf$b),sd=sd(bf$b))
bfyfit <- bfyfit*diff(hwf$mids[1:2])*length(wf$w)
wfxfit<-seq(min(300),max(500),length=40)
wfyfit<-dnorm(wfxfit,mean=mean(wf$w),sd=sd(wf$w))
wfyfit <- wfyfit*diff(hwf$mids[1:2])*length(wf$w)
# Draw N distributions
lines(wfxfit, wfyfit, col="purple", lty=1, lwd=2)
# lines(bfxfit, bfyfit, col="brown", lty=2, lwd=2)
I then exported as svg (rkward allows this to be done with a few clicks), and edited the appearance with Inkscape for the final labels (excluded from the attached picture).
Bookmarks