library(ggplot2)
library(gridExtra)

create a dataset

xvar <- c(rnorm(1500, mean = -1), rnorm(1500, mean = 1.5))
yvar <- c(rnorm(1500, mean = 1), rnorm(1500, mean = 1.5))
zvar <- as.factor(c(rep(1, 1500), rep(2, 1500)))
xy <- data.frame(xvar, yvar, zvar)

a couple of histogram plots

g1<-ggplot(xy, aes(xvar))+geom_histogram() # horribly ugly default
g2<-ggplot(xy, aes(xvar))+geom_histogram(binwidth=1) #change binwidth
g3<-ggplot(xy, aes(xvar))+geom_histogram(fill=NA,color="black")+theme_bw() #nicer looking
#density on y-axis
g4<-ggplot(xy, aes(x=xvar))+geom_histogram(aes(y=..density..), color="black", fill=NA)+theme_bw()
grid.arrange(g1,g2,g3,g4, nrow=1)

density plots

p1<-ggplot(xy, aes(xvar))+geom_density()
#hist and densityline overlaid
p2<-ggplot(xy,aes(x=xvar))+geom_histogram(aes(y=..density..), color="black", fill=NA)+geom_density(color="blue")
#split and color by third variable, alpha fades the color a bit
p3<-ggplot(xy, aes(xvar, fill=zvar))+geom_density(alpha=0.2)
grid.arrange(p1,p2,p3,nrow=1)

boxplot, jitter plot, violin plot

rug plot

ggplot(xy, aes(xvar, yvar))+geom_point()+geom_rug(col="darkred", alpha=.1)

add histogram, density plots

LS0tDQp0aXRsZTogInZpc3VhbGl6YXp0aW9uIGV4cGxvcmVyIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGdyaWRFeHRyYSkNCmBgYA0KDQojY3JlYXRlIGEgZGF0YXNldA0KYGBge3J9DQp4dmFyIDwtIGMocm5vcm0oMTUwMCwgbWVhbiA9IC0xKSwgcm5vcm0oMTUwMCwgbWVhbiA9IDEuNSkpDQp5dmFyIDwtIGMocm5vcm0oMTUwMCwgbWVhbiA9IDEpLCBybm9ybSgxNTAwLCBtZWFuID0gMS41KSkNCnp2YXIgPC0gYXMuZmFjdG9yKGMocmVwKDEsIDE1MDApLCByZXAoMiwgMTUwMCkpKQ0KeHkgPC0gZGF0YS5mcmFtZSh4dmFyLCB5dmFyLCB6dmFyKQ0KYGBgDQoNCmEgY291cGxlIG9mIGhpc3RvZ3JhbSBwbG90cw0KYGBge3J9DQpnMTwtZ2dwbG90KHh5LCBhZXMoeHZhcikpK2dlb21faGlzdG9ncmFtKCkgIyBob3JyaWJseSB1Z2x5IGRlZmF1bHQNCmcyPC1nZ3Bsb3QoeHksIGFlcyh4dmFyKSkrZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGg9MSkgI2NoYW5nZSBiaW53aWR0aA0KZzM8LWdncGxvdCh4eSwgYWVzKHh2YXIpKStnZW9tX2hpc3RvZ3JhbShmaWxsPU5BLGNvbG9yPSJibGFjayIpK3RoZW1lX2J3KCkgI25pY2VyIGxvb2tpbmcNCiNkZW5zaXR5IG9uIHktYXhpcw0KZzQ8LWdncGxvdCh4eSwgYWVzKHg9eHZhcikpK2dlb21faGlzdG9ncmFtKGFlcyh5PS4uZGVuc2l0eS4uKSwgY29sb3I9ImJsYWNrIiwgZmlsbD1OQSkrdGhlbWVfYncoKQ0KDQpncmlkLmFycmFuZ2UoZzEsZzIsZzMsZzQsIG5yb3c9MSkNCmBgYA0KDQojZGVuc2l0eSBwbG90cw0KYGBge3J9DQpwMTwtZ2dwbG90KHh5LCBhZXMoeHZhcikpK2dlb21fZGVuc2l0eSgpDQoNCiNoaXN0IGFuZCBkZW5zaXR5bGluZSBvdmVybGFpZA0KcDI8LWdncGxvdCh4eSxhZXMoeD14dmFyKSkrZ2VvbV9oaXN0b2dyYW0oYWVzKHk9Li5kZW5zaXR5Li4pLCBjb2xvcj0iYmxhY2siLCBmaWxsPU5BKStnZW9tX2RlbnNpdHkoY29sb3I9ImJsdWUiKQ0KDQojc3BsaXQgYW5kIGNvbG9yIGJ5IHRoaXJkIHZhcmlhYmxlLCBhbHBoYSBmYWRlcyB0aGUgY29sb3IgYSBiaXQNCnAzPC1nZ3Bsb3QoeHksIGFlcyh4dmFyLCBmaWxsPXp2YXIpKStnZW9tX2RlbnNpdHkoYWxwaGE9MC4yKQ0KDQpncmlkLmFycmFuZ2UocDEscDIscDMsbnJvdz0xKQ0KYGBgDQoNCiNib3hwbG90LCBqaXR0ZXIgcGxvdCwgdmlvbGluIHBsb3QNCmBgYHtyfQ0KYjE8LWdncGxvdCh4eSxhZXMoenZhciwgeHZhcikpK2dlb21fYm94cGxvdCgoYWVzKGZpbGw9enZhcikpK3RoZW1lKGxlZ2VuZC5wb3NpdGlvbj0ibm9uZSIpKQ0KDQpiMjwtZ2dwbG90KHh5LGFlcyh6dmFyLCB4dmFyKSkrZ2VvbV9qaXR0ZXIoYWxwaGE9SSgxLzQpLCBhZXMoY29sb3I9enZhcikpK3RoZW1lKGxlZ2VuZC5wb3NpdGlvbj0ibm9uZSIpDQoNCmIzPC1nZ3Bsb3QoeHksIGFlcyh4PXh2YXIpKStzdGF0X2RlbnNpdHkoYWVzKHltYXg9Li5kZW5zaXR5Li4seW1pbj0tLi5kZW5zaXR5Li4sIGZpbGw9enZhciwgY29sb3I9enZhciksIGdlb209InJpYmJvbiIsIHBvc2l0aW9uPSJpZGVudGl0eSIpK2ZhY2V0X2dyaWQoLn56dmFyKStjb29yZF9mbGlwKCkrdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJub25lIikNCg0KZ3JpZC5hcnJhbmdlKGIxLGIyLGIzLG5yb3c9MSkNCg0KDQoNCmBgYA0KDQojcnVnIHBsb3QNCmBgYHtyfQ0KZ2dwbG90KHh5LCBhZXMoeHZhciwgeXZhcikpK2dlb21fcG9pbnQoKStnZW9tX3J1Zyhjb2w9ImRhcmtyZWQiLCBhbHBoYT0uMSkNCmBgYA0KDQojYWRkIGhpc3RvZ3JhbSwgZGVuc2l0eSBwbG90cw0KYGBge3J9DQojcGxhY2Vob2xkZXIgcGxvdC1wcmludHMgbm90aGluZyBhdCBhbGwNCmVtcHR5PC1nZ3Bsb3QoKStnZW9tX3BvaW50KGFlcygxLDEpLCBjb2xvdXI9IndoaXRlIikgKw0KICAgICB0aGVtZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICBwbG90LmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCksIA0KICAgICAgIHBhbmVsLmdyaWQubWFqb3IgPSBlbGVtZW50X2JsYW5rKCksIA0KICAgICAgIHBhbmVsLmdyaWQubWlub3IgPSBlbGVtZW50X2JsYW5rKCksIA0KICAgICAgIHBhbmVsLmJvcmRlciA9IGVsZW1lbnRfYmxhbmsoKSwgDQogICAgICAgcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgIGF4aXMudGlja3MgPSBlbGVtZW50X2JsYW5rKCkNCiAgICAgKQ0KI3NjYXR0ZXJwbG90IG9mIHggYW5kIHkgdmFyaWFibGVzDQpzY2F0dGVyPC1nZ3Bsb3QoeHksIGFlcyh4dmFyLCB5dmFyKSkrZ2VvbV9wb2ludChhZXMoY29sb3I9enZhcikpK3NjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9Yygib3JhbmdlIiwgInB1cnBsZSIpKSt0aGVtZShsZWdlbmQucG9zaXRpb24gPSBjKDEsMSksbGVnZW5kLmp1c3RpZmljYXRpb249YygxLDEpKQ0KI21hcmdpbmFsIGRlbnNpdHkgb2YgeCBwbG90IG9uIHRvcA0KcGxvdF90b3A8LWdncGxvdCh4eSwgYWVzKHh2YXIsIGZpbGw9enZhcikpK2dlb21fZGVuc2l0eShhbHBoYT0wLjUpK3NjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJvcmFuZ2UiLCAicHVycGxlIikpK3RoZW1lKGxlZ2VuZC5wb3NpdGlvbj0ibm9uZSIpDQoNCiNtYXJnaW5hbCBkZW5zaXR5IG9mIHkgcGxvdCBvbiB0aGUgcmlnaHQNCnBsb3RfcmlnaHQ8LWdncGxvdCh4eSwgYWVzKHl2YXIsZmlsbD16dmFyKSkrZ2VvbV9kZW5zaXR5KGFscGhhPS41KSsgY29vcmRfZmxpcCgpKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJvcmFuZ2UiLCAicHVycGxlIikpICsgDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgDQoNCiNhcnJhbmdlIHRoZSBwbG90cyB0b2dldGhlciB3aXRoIGFwcHJvcHJpYXRlIGhlaWdodCBhbmQgd2lkdGggZm9yIGVhY2ggcm93IGFuZCBjb2x1bW4NCmdyaWQuYXJyYW5nZShwbG90X3RvcCwgZW1wdHksIHNjYXR0ZXIsIHBsb3RfcmlnaHQsIG5jb2w9MiwgbnJvdz0yLCB3aWR0aHM9Yyg0LDEpLCBoZWlnaHRzPWMoMSw0KSkNCg0KYGBgDQoNCg==