r - How to create a Marimekko/Mosaic plot in ggplot2 -
the marimekko/mosaic plot nice default plot when both x , y categorical variables. best way create these using ggplot?

the reference find 4yo blog post seems bit outdated. there better or easier implementations avaialable now? ggally package has function ggally_ratio produces quite different:

i did myself time ago, using geom_bar, turned general function should work on 2 factors. 
ggmmplot <- function(var1, var2){ require(ggplot2) levvar1 <- length(levels(var1)) levvar2 <- length(levels(var2)) jointtable <- prop.table(table(var1, var2)) plotdata <- as.data.frame(jointtable) plotdata$marginvar1 <- prop.table(table(var1)) plotdata$var2height <- plotdata$freq / plotdata$marginvar1 plotdata$var1center <- c(0, cumsum(plotdata$marginvar1)[1:levvar1 -1]) + plotdata$marginvar1 / 2 ggplot(plotdata, aes(var1center, var2height)) + geom_bar(stat = "identity", aes(width = marginvar1, fill = var2), col = "black") + geom_text(aes(label = as.character(var1), x = var1center, y = 1.05)) } ggmmplot(diamonds$cut, diamonds$clarity)
Comments
Post a Comment