 <p>I had some troubles with the the above solution, as my data was contained in a single data frame. Using <code>...</code> <code>data=df$A</code> in the aesthetics doesn't work as this will provide ggplot with a vector of class "numeric", which isn't supported. </p> <p>Therefor, to overlay different columns all contained in the same data frame, I'd suggest:</p> <pre><code>vec1 &lt;- rnorm(3000, 0, 1) vec2 &lt;- rnorm(3000, 1, 1.5) df &lt;- data.frame(vec1, vec2) colnames(df) &lt;- c("A", "B") library(ggplot2) ggplot() + geom_density(aes(x=df$A), colour="red") + geom_density(aes(x=df$B), colour="blue") </code></pre> <p><a href="https://i.stack.imgur.com/T5XcV.png" rel="nofollow"><img src="https://i.stack.imgur.com/T5XcV.png" alt="enter image description here"></a></p> <p>For most people this might seem obvious, but for me as a beginner, it wasn't. Hope this helps.</p>