Agree re: kwargs and defining a class, particularly if the goal is subsequent use in QIIME. Two benefits: decompose setting defaults and you can greatly reduce the amount of code in each method. Should also simplify how defaults are dealt with. Also, as many of these arguments are directed at matplotlib, you can just keep passing kwargs (most likely) into the subsequent matplotlib functions of interest.