Wow, that is a lot of arguments.  ```kwargs``` would save space in the function declaration, but then you have to put ```kwargs``` in front of everything in the function body.  I don't know if that's much better; it would also be a little less clear what arguments the function accepts (even though the docstring is nice and verbose). I think there's not much you can do to improve this, if we really need to be this dynamic.  If we are concerned with the way this function is written, here are a few questions: do we actually need to be this dynamic?  Aren't we generating just a couple of bar charts, and don't they generally look the same?  When will we be reusing this code?