Improved chart sizing

Building off the proposal, code (from @matthull) and discussion in #327, close #295.