Skip to content

dotchart vs. dotplot ... groups

3 messages · mkzodet at comcast.net, Brian Diggs, Deepayan Sarkar

1 day later
#
On 8/17/2011 11:29 AM, mkzodet at comcast.net wrote:
Something similar (though still not what you wanted) using ggplot would be:

dev.new(width=3,height=3)
ggplot(dta, aes(x=var3, y=var2)) +
	geom_point() +
	scale_y_reverse(breaks=1:4, expand=c(0,0.5)) +
	facet_grid(var1~., scales="free", space="free") +
	theme_bw()

  
    
#
On Wed, Aug 17, 2011 at 11:59 PM, <mkzodet at comcast.net> wrote:
Well, the more "lattice-like" version of this would be


dta$var2fac <- factor(dta$var2, levels = rev(sort(unique(dta$var2))))

dotplot(var2fac ~ var3 | var1, data=dta, groups=var1,
        col=c("blue", "red", "dark green"),
        layout = c(1, 3), as.table = TRUE,
        scales=list(y = list(relation = "sliced")))


But if you really want the dotchart()-like output, you can try

dta$var12fac <- with(dta, interaction(var2fac, factor(var1, levels =
rev(levels(var1)))))
dta$var12fac <- droplevels(dta$var12fac)
lab <- substring(levels(dta$var12fac), 1, 1)

dotplot(var12fac ~ var3,
        data = dta, groups=var1,
        col=c("blue", "red", "dark green"),
        scales = list(y = list(labels = lab,
                               col = rep(c("dark green", "red", "blue"),
                                         c(3, 4, 2)))),
        ylab = list(label = c("C", "B", "A"),
                    y = c(3, 7, 9) / 9.2,
                    rot = 0, col = c("dark green", "red", "blue")))


-Deepayan