Boxplot equivalent for heavy-tailed distributions? For approximately normally distributed data, boxplots are a great way to quickly visualize the median and spread of the data, as well as the presence of any outliers.
However for more heavy-tailed distributions, a lot of points are shown as outliers, since outliers are defined as being outside of fixed factor of the IQR, and this happens of course a lot more frequently with heavy-tailed distributions.
So what do people use to visualize this kind of data? Is there something more adapted? I use ggplot on R, if that matters.
 A: The central problem the OP appears to have is that they have very-heavy tailed data - and I don't think most of the present answers actually deal with that issue at all, so I am promoting my previous comment to an answer.
If you did want to stay with boxplots, some options are listed below. I have created some data in R which shows the basic problem:
 set.seed(seed=7513870)
 x <- rcauchy(80)
 boxplot(x,horizontal=TRUE,boxwex=.7)

 
The middle half of the data is reduced to a tiny strip a couple of mm wide. The same problem afflicts most of the other suggestions - including QQ plots, strip charts, beehive/beeswarm plots, and violin plots.
Now some potential solutions:
1) transformation, 
If logs, or inverses produce a readable boxplot, they may be a very good idea, and the original scale can still be shown on the axis.
The big problem is there's sometimes no 'intuitive' transformation. There's a smaller problem that while quantiles themselves translate with monotonic transformations well enough, the fences don't; if you just boxplot the transformed data (as I did here), the whiskers will be at different x-values than in the original plot.

Here I used a inverse-hyperbolic-sin (asinh); it's sort of log-like in the tails and similar to linear near zero, but people generally don't find it an intuitive transformation, so in general I wouldn't recommend this option unless a fairly intuitive transformation like log is obvious. Code for that:
xlab <- c(-60,-20,-10,-5,-2,-1,0,1,2,5,10,20,40)
boxplot(asinh(x),horizontal=TRUE,boxwex=.7,axes=FALSE,frame.plot=TRUE)
axis(1,at=asinh(xlab),labels=xlab)

2) scale breaks - take extreme outliers and compress them into narrow windows at each end with a much more compressed scale than at the center. I highly recommend a complete break across the whole scale if you do this.

opar <- par()
layout(matrix(1:3,nr=1,nc=3),heights=c(1,1,1),widths=c(1,6,1))
par(oma = c(5,4,0,0) + 0.1,mar = c(0,0,1,1) + 0.1)
stripchart(x[x< -4],pch=1,cex=1,xlim=c(-80,-5))
boxplot(x[abs(x)<4],horizontal=TRUE,ylim=c(-4,4),at=0,boxwex=.7,cex=1)
stripchart(x[x> 4],pch=1,cex=1,xlim=c(5,80))
par(opar)

3) trimming of extreme outliers (which I wouldn't normally advise without indicating this very clearly, but it looks like the next plot, without the "<5" and "2>" at either end), and
4) what I'll call extreme-outlier "arrows" - similar to trimming, but with the count of values trimmed indicated at each end

xout <- boxplot(x,range=3,horizontal=TRUE)$out
xin <- x[!(x %in% xout)]
noutl <- sum(xout<median(x))
nouth <- sum(xout>median(x))
boxplot(xin,horizontal=TRUE,ylim=c(min(xin)*1.15,max(xin)*1.15))
text(x=max(xin)*1.17,y=1,labels=paste0(as.character(nouth)," >"))
text(x=min(xin)*1.17,y=1,labels=paste0("< ",as.character(noutl)))

A: 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)


The beeswarm package offers a great alternative to stripplot (thanks to @January for the suggestion).
beeswarm(df2$values ~ df2$ind)


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") }


A: You can stick to boxplots. There are different possibilities for defining whiskers. Depending on tail thickness, number of samples and tolerance to outliers you can choose two more or less extreme quantiles. Given your problem I would avoid whiskers defined through the IQR.
Unless of course you want to transform your data, which in this case makes understanding harder.
A: I assume this question is about understanding data (as opposed to otherwise “managing” it )
If the data are heavy tailed and/or multimodal, I find these "layers" of ggplot2 very useful for the purpose: geom_violin and geom_jitter.
