Personally I like to use a **stripplot** with jitter at least to get a feel for the data. The plot below is with lattice in R (sorry not ggplot2). I like these plots because they're very easy to interpret. As you say, one reason for this is that there isn't any transform.

    df <- data.frame(y1 = c(rnorm(100),-4:4), y2 = c(rnorm(100),-5:3), y3 = c(rnorm(100),-3:5))
    df2 <- stack(df)
    library(lattice)
    stripplot(df2$values ~ df2$ind, jitter=T)

![enter image description here][1]

The **[beeswarm][2]** package offers a great alternative to stripplot (thanks to @January for the suggestion).

    beeswarm(df2$values ~ df2$ind)

![enter image description here][3]

With your data, as it's approximately normally distributed, another thing to try might be a qqplot, **qqnorm** in this case.

    par(mfrow=c(1,3))
    for(i in 1:3) { qqnorm(df[,i]); abline(c(0,0),1,col="red") }

![enter image description here][4]


  [1]: https://i.sstatic.net/l4SPm.png
  [2]: http://cran.r-project.org/web/packages/beeswarm/index.html
  [3]: https://i.sstatic.net/hT7UA.png
  [4]: https://i.sstatic.net/VrcEC.png