How to plot data to visualize variance of lower cluster if there is >1 I have the following data:
library(ggplot2)
set.seed(1)
pop1           <- as.data.frame(rpois(780,800))
colnames(pop1) <- "pop"
pop2           <- as.data.frame(rpois(20,4000))
colnames(pop2) <- "pop"
pop            <- rbind(pop1, pop2)

Because the peaks are so far apart the boxplot and histogram are pulled apart and are not very informative. Is there a way to make such a plot more informative? Cut the x-axis (histogram) or pull the y axis longer (boxplot)?
Here are examples of a histogram and a boxplot:
ggplot(data=pop, aes(y=pop)) +
  geom_boxplot() +
  theme_bw()

ggplot(data=pop, aes(x=pop)) +
  geom_histogram(breaks=seq(300,5000,by=50), binwidth=5, color="white") +
  theme_bw()



 A: I gather sometimes you have two clusters and sometimes you have only one. What you want is to visualize the variance of the lower (or single, depending on the situation) cluster to see how they compare from iteration to iteration.  
I think boxplots should be fine for this, you just only want to make / display boxplots for the lower cluster if there are two.  This suggests you first run a cluster analysis, and extract only the data for the lower cluster when there is more than one.  Any number of cluster analyses should be fine for this, especially because your clusters are so widely separated.  If you are sufficiently confident your clusters are Poisson, you could use Poisson finite mixture modeling (cf., When to use LDA over GMM for clustering?), but given the wide separation, Gaussian mixture modeling should work just as well.  
The following is a rudimentary version of this algorithm, coded in R (I'm sure this could be made more elegant and efficient).  Note that I'm capitalizing on the fact that the relevant cluster is guaranteed to be lower.  If that isn't true, or there's more to the situation than what I have here, this procedure would need to be elaborated.    
library(mc)  # you'll need this library for the clustering

DGP = function(){  # this is the data generating process
  if(runif(1)<.5){  pop =   rpois(800, 800)
  } else{           pop = c(rpois(780, 800), rpois(20, 4000))
  }
  return(pop)
}

mat = matrix(NA, ncol=5, nrow=800, byrow=FALSE)  # to hold the data
set.seed(1)                                      # makes the example reproducible
for(j in 1:5){ mat[,j] = DGP() }                 # generating the data

box.list        = vector(length=5, mode="list")  # for the data we want to examine
names(box.list) = paste("Iteration", 1:5)
for(j in 1:5){
  mc            = Mclust(mat[,j])                # the clustering
  box.list[[j]] = mc$data[mc$classification==1]
}
d.frame = stack(box.list)

windows()
  boxplot(values~ind, d.frame)


windows()
  boxplot(as.data.frame(mat))  # this is without the clustering


