Alternative visualizations to 3D bar chart I have a dataset that consists of a numerical variable (height, y-axis). Each data point is replicated for an individual (1,2,3) in each treatment (A,B,C,D). Here is a terrible figure that I am looking to replace:

What other creative ways could I show this data? I have been playing around with facets in ggplot2, but couldn't get a layout I like. I am open to any suggestions. I would also like to add some error bars in there at some point, as the data here are means. Help make my data sexy! 
Here is the data:
help_3D <- structure(list("one"=c(10,9,8,7), "two"=c(8,7,6,5),   "three"=c(8.9,8.7,8.5,8.4), treatment=c("A", "B", "C", "D")), .Name = c("one", "two", "three", "treatment"), row.names=c(NA, 15L),  class="data.frame")

 A: One candidate is the dot chart ably and energetically promoted by W.S. Cleveland. Here's a Stata implementation: 

Key points include 


*

*There is no absolute reason for lines to start at zero. Here it seems natural; in other cases it can seem superfluous. 

*Solid markers here draw attention to magnitudes. Whenever points might occlude or obscure each other, open markers may be better. 

*It's arbitrary which one categorical control nests inside another. Here treatments A B C D occur on the inside, which was found to show a simpler pattern. Another design has all treatments on the same line. 
For other ideas and examples, see 
Graph for relationship between two ordinal variables
Chart for visualizing multi-dimensional data
How to add a third variable to a bar plot?
Is there a better way than side-by-side barplots to compare binned data from different series
How to best visualize differences in many proportions across three groups?
In this case, there is a small functional difference between this display and similar bar charts, whether vertical or horizontal. The advantages of dot charts are more striking when each line contains two or more "dots" (more generally, markers or point symbols). Some of these threads above are especially pertinent here. 
Note: Implemented in Stata with code 
graph dot (asis) y, over(treatment) over(x) scheme(s1color) linetype(line) lines(lc(gs12) lw(vthin))

EDIT: Regardless of whether these are real data, a further possibility is just to shuffle the individuals 1, 2, 3. Unless you tell us otherwise, their identifiers are arbitrary; in terms of their response patterns 3 might be better placed between 1 and 2. 
A: Looks like a grouped bar chart, as Tal mentioned. You can easily plot this with the sjPlot-package. See some examples here.
sjPlot makes it easy to produce ggplot figures - however, it requires the "raw" data, where the count (y-pos) is computed within the function. An example:
library(sjPlot)
library(sjmisc)
data(efc)

sjp.setTheme("539")
sjp.grpfrq(efc$e42dep, efc$c172code)

which gives following figure:

You can easily change the plot type to dot plots or similar:
sjp.grpfrq(efc$e42dep, efc$c172code, 
           geom.colors = "Set1", type = "dots", 
           coord.flip = T, showValueLabels = F)


In the upper cases, each group has some observations, and the count for each group is computed before plotting. However, in your case, you don't want to map y to the count of values, but to the value itself. In this case, you may have to create your own plot, which could be done like this:
help_3D <- structure(list("one"=c(10,9,8,7), "two"=c(8,7,6,5),   "three"=c(8.9,8.7,8.5,8.4), treatment=c("A", "B", "C", "D")), .Name = c("one", "two", "three", "treatment"), row.names=c(NA, 4L),  class="data.frame")

library(ggplot2)
library(tidyr)
library(sjPlot) # just for the theme
sjp.setTheme("scatter") # just for the theme
help_3d_long <- tidyr::gather(help_3D, "grp", "ypos", 1:3)
ggplot(help_3d_long, aes(x = treatment, y = ypos, colour = grp)) + 
  geom_point(position = position_jitter(.2)) +
  coord_flip()


Finally, to add error bars, you need to have the standard error in your data set. The following plot adds error bars, but uses position_dodge instead of position_jitter, to have control of the position of both dots and error bars:
help_3D <- structure(list("one"=c(10,9,8,7), "two"=c(8,7,6,5),
                          "three"=c(8.9,8.7,8.5,8.4), 
                          treatment=c("A", "B", "C", "D")),
                     .Name = c("one", "two", "three", "treatment"), 
                     row.names=c(NA, 4L),  class="data.frame")

library(ggplot2) 
library(tidyr) 
library(sjPlot) # just for theme
sjp.setTheme("scatter") # just for theme
help_3d_long <- tidyr::gather(help_3D, "grp","ypos", 1:3)
help_3d_long$se <- runif(n = 4, min = 0.2, max = .8)
ggplot(help_3d_long, aes(x = treatment, y = ypos, colour = grp)) +   
  geom_point(position = position_dodge(.2)) +   
  geom_errorbar(aes(ymin = ypos - se, ymax = ypos + se, colour = grp), 
                width = 0,
                position = position_dodge(.2)) +
  coord_flip()


You also might want to look at either gghtemr or ggthemes to find some "sexy" themes, as you requested. ;-)
A: There are many possibilities. If you want to stick with a bar chart, you can layer or group them, as shown at (c) and (d) in this picture:

Source: http://www.nature.com/nmeth/journal/v11/n2/full/nmeth.2807.html
