{"action":"created","issue":{"url":"https://api.github.com/repos/geopandas/geopandas/issues/204","labels_url":"https://api.github.com/repos/geopandas/geopandas/issues/204/labels{/name}","comments_url":"https://api.github.com/repos/geopandas/geopandas/issues/204/comments","events_url":"https://api.github.com/repos/geopandas/geopandas/issues/204/events","html_url":"https://github.com/geopandas/geopandas/issues/204","id":94571486,"number":204,"title":"Pass plot kwargs to matplotlib commands","user":{"login":"kjordahl","id":499079,"avatar_url":"https://avatars.githubusercontent.com/u/499079?v=3","gravatar_id":"","url":"https://api.github.com/users/kjordahl","html_url":"https://github.com/kjordahl","followers_url":"https://api.github.com/users/kjordahl/followers","following_url":"https://api.github.com/users/kjordahl/following{/other_user}","gists_url":"https://api.github.com/users/kjordahl/gists{/gist_id}","starred_url":"https://api.github.com/users/kjordahl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kjordahl/subscriptions","organizations_url":"https://api.github.com/users/kjordahl/orgs","repos_url":"https://api.github.com/users/kjordahl/repos","events_url":"https://api.github.com/users/kjordahl/events{/privacy}","received_events_url":"https://api.github.com/users/kjordahl/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/geopandas/geopandas/labels/scipy2015%20sprint","name":"scipy2015 sprint","color":"5319e7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2015-07-12T15:05:09Z","updated_at":"2016-01-20T06:21:15Z","closed_at":null,"body":"The plot functions don't pass kwargs to matplotlib.\r\n\r\nFor example, it would be nice to be able to use `df.plot(figsize=(10, 10))` to change output size, especially in the notebook. Currently, all kwargs to `plot_dataframe()` are assumed to be color arguments that are ultimately only options to `plot_multipolygon()`."},"comment":{"url":"https://api.github.com/repos/geopandas/geopandas/issues/comments/173107632","html_url":"https://github.com/geopandas/geopandas/issues/204#issuecomment-173107632","issue_url":"https://api.github.com/repos/geopandas/geopandas/issues/204","id":173107632,"user":{"login":"IamJeffG","id":2002703,"avatar_url":"https://avatars.githubusercontent.com/u/2002703?v=3","gravatar_id":"","url":"https://api.github.com/users/IamJeffG","html_url":"https://github.com/IamJeffG","followers_url":"https://api.github.com/users/IamJeffG/followers","following_url":"https://api.github.com/users/IamJeffG/following{/other_user}","gists_url":"https://api.github.com/users/IamJeffG/gists{/gist_id}","starred_url":"https://api.github.com/users/IamJeffG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IamJeffG/subscriptions","organizations_url":"https://api.github.com/users/IamJeffG/orgs","repos_url":"https://api.github.com/users/IamJeffG/repos","events_url":"https://api.github.com/users/IamJeffG/events{/privacy}","received_events_url":"https://api.github.com/users/IamJeffG/received_events","type":"User","site_admin":false},"created_at":"2016-01-20T06:21:15Z","updated_at":"2016-01-20T06:21:15Z","body":">  facolor raising a TypeError ... they are for the current implementation?\r\n\r\nYes this would be fixed using Collections.\r\n\r\n> legend=True will only pick up color, not facecolor\r\n\r\nThis comment applied to the current implementation. With Collections, a fourth option is introduced, `array`, and the colorbar will always use the `array` and ignore color and facecolor.  (This is very logical.)\r\n\r\n> > color will need to override facecolor, rather than (current behavior) the other way around.\r\n\r\n> Why is that needed?\r\n\r\nMy mistake. In matplotlib.collection `color` sets both `facecolor` and `edgecolor`, which I thought would imply that it overrides them as well.  If you set both `facecolor` and `color`, `facecolor` wins.  Same is not always true for `edgecolor` and `color`: see my gist below.\r\n\r\n> > On Collections the appropriate keyword is fillcolors, not fillcolor. (though I think I'm noticing inconsistent support for fillcolor in some collection subclasses?)\r\n\r\n> Which keyword do you mean? The matplotlib Collections api docs don't speak about a fillcolor?\r\n\r\nSorry; I meant to say \"the appropriate keyword is `facecolors`, not `facecolor`.\"  And again I was mistaken: going from the documentation, `facecolor` (singular) is not documented as a consructor kwarg, but does happen to work.\r\n\r\n--\r\n\r\nClearly, digging through the collections docs got me confused, so I made a gist to brute force all the combinations of these kwargs to really prove how things work:\r\nhttps://gist.github.com/IamJeffG/2bf37498a79e7aa93ee5\r\n\r\nCurrently geopandas uses `color` in more or less the same way as `column` (i.e. matpotlib.collection's `array`), in the sense that you set one or the other (not both) and the shapes get colored accordingly. It turns out the two kwargs have different behavior with respect to default edgecolors and also to how they interact with other arguments `facecolor` and `edgecolor` when present.  This surprised me, but it's not a huge deal; we may just have to live with the inconsistency.\r\n\r\nFrom this gist, I've come to agree that always passing `color`, `facecolor` and `edgecolor` directly to matplotlib collections, usually makes sense (or at least, it _will_ make sense with Collections)!"}}