[This article was first published on R – rud.is, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
I caught this “gem” in the Wall Street Journal tonight:
It’s pretty hard to compare store-to-store, even though it is fairly clear which ones are going-going-gone. If we want to see the relative percentage of each store closing and also want to see how they stack up against each other, then let’s make a column of 100% bars and label total stores in each:
library(hrbrthemes) library(tidyverse) read.table(text='store,closing,total "Radio Shack",550,1500 "Payless",400,2600 "Rue21",400,1100 "The Limited",250,250 "bebe",180,180 "Wet Seal",170,170 "Crocs",160,560 "JCPenny",138,1000 "American Apparel",110,110 "Kmart",109,735 "hhgregg",88,220 "Sears",41,695', sep=",", header=TRUE, stringsAsFactors=FALSE) %>% as_tibble() %>% mutate(remaining = total - closing, gone = round((closing/total) * 100)/100, stay = 1-gone, rem_lab = ifelse(remaining == 0, "", scales::comma(remaining))) %>% arrange(desc(stay)) %>% mutate(store=factor(store, levels=store)) -> closing_df update_geom__defaults(_rc) ggplot(closing_df) + geom_segment(aes(0, store, xend=gone, yend=store, color="Closing"), size=8) + geom_segment(aes(gone, store, xend=gone+stay, yend=store, color="Remaining"), size=8) + geom_text(aes(x=0, y=store, label=closing), color="white", hjust=0, nudge_x=0.01) + geom_text(aes(x=1, y=store, label=rem_lab), color="white", hjust=1, nudge_x=-0.01) + scale_x_percent() + scale_color_ipsum(name=NULL) + labs(x=NULL, y=NULL, title="Selected 2017 Store closings (estimated)", subtitle="Smaller specialty chains such as Bebe and American Apparel are closing their stores,\nwhile lareger chains such as J.C. Penny and Sears are scaling back their footprint.") + theme_ipsum_rc(grid="X") + theme(axis.text.x=element_text(hjust=c(0, 0.5, 0.5, 0.5, 1))) + theme(legend.position=c(0.875, 1.025)) + theme(legend.direction="horizontal")
One might try circle packing or a treemap to show both relative store count and percentage, but I think the bigger story is the percent reduction for each retail chain. It’d be cool to see what others come up with.
To leave a comment for the author, please follow the link and comment on their blog: R – rud.is.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.