More extensive plotting tools?
See original GitHub issueHowdy,
I developed geoplot (repo), a package for high-level geospatial plotting, a few months back. Right now it’s a standalone module, but I’m interested in integrating this directly into geopandas as a geospatial visualization module that’s akin to the pandas plotting lib functions: gpd.plot.cartogram, gpd.plot.kdeplot, etcetera.
Is there an interest in doing something like this? Would love to discuss.
cc: @jorisvandenbossche, since you’re active here and we’re already in contact in pandas dev…
Issue Analytics
- State:
- Created 7 years ago
- Reactions:2
- Comments:6 (6 by maintainers)
Top Results From Across the Web
23 Best Data Visualization Tools for 2023 - Simplilearn
Some of the best data visualization tools include Google Charts, Tableau, Grafana, Chartist, FusionCharts, Datawrapper, Infogram, and ...
Read more >A Complete Overview of the Best Data Visualization Tools
Google Charts There are a variety of chart types, including maps, scatter charts, column and bar charts, histograms, area charts, pie charts, treemaps, ......
Read more >Top Tools for Data Exploration and Visualization With Their ...
Altair provides inbuilt charts. Bar chart, line chart, area chart, histogram, scatter plot and more. Let's draw some plots to see how Altair...
Read more >The Best Plotting Tools for Writers and Novels - Novlr
Overall, Beemgee is a robust plotting tool that emphasises character development before all else. Pros: Strong development templates that allow ...
Read more >High-level tools to simplify visualization in Python — HoloViz ...
High-level tools that make it easier to apply Python plotting libraries to your data. A comprehensive tutorial showing how to use the available...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

So while @jorisvandenbossche is distracted by the Docathon (😄), I thought I’d drop some notes about what the scope of this change would be.
API
In terms of API, I think for compat it’s best to continue to use the current
GeoDataFrame.plot/GeoSeries.plotbehavior, and extend theplotaccessor with the additional options enabled bygeoplot. So, at a minimum, you’d see the following additional methods:GeoDataframe.plot.pointplotGeoDataFrame.plot.cartogramGeoDataFrame.plot.kdeplotGeoDataFrame.plot.sankeyThis is equivalent to what
pandasdoes right now (note, though, thatpandasis moving to deprecate the rootplotmethod “eventually”).There are two methods that I am leaving out of this list. The first is
GeoDataFrame.plot.aggplot, an experimental minimal-assumptions take on a choropleth that makes somewhat less sense when it’s attached to an explicitly geospatial data structure.geopandasdoes support null geometry columns; so if this is something that the devs are comfortable including, I think it can be done. But, it may find a better home somewhere in thepysal.geoplot. Or maybe it’s just a terrible idea and should be cut completely. I’m not sure, TBD.The other method is
GeoDataFrame.plot.choropleth. Thegeoplotone is an improved iteration on the pure-geopandasone that supports projects and a bit of other extra “stuff”. I think the APIs already match, andgeopandas.choroplethcan be transparently inserted intoGeoDataFrame.plotwith backwards compatibility and a minimum of modifications. But, this would be a more substantial change than simply hanging new methods as above.Tests
geoplothas its own tests. These can be integrated intogeopandaspretty smoothly. However, the tests I have are pretty bare-bones, I’m just checking that the plot “works”. I will need to do some work creating more vigorous unit tests; again going off thepandasmodel here.Also, the property tests I have (implemented with
hypothesis) are cool, but ultimately non-essential and take forever and should be cut.Updates
geoplotcould still use some polish in places. I think we can work on fixing up trouble spots as a part of this effort.Docs
geoplothas its own docs, these would need to be rewritten obviously. The tutorial docs would become a section in thegeoplotdocs, the API reference likewise. I’m pretty sure we won’t be able to bring theseaborn-style illustrative images over…oh well.Something I would like to keep is the Example Gallery. Not sure how that would work, but I think the
geoplotmatplotlib-style Gallery is pretty awesome (hope you agree 😄) and I’d like to keep it. How is TBD.Windows compat
geoploton its own is not Windows-compat AFIAK because of DLL hell issues. However, I’m 80% sure this will clear up if it’s made a part ofgeopandasdirectly, since it’s interactions between geoplot and geopandas and cartopy that are causing the issue.Version compat
The code needs to be retouched to make it 3.4 and 2.7 compat, as the rest of this lib is.
Pull strategy
I think I’d prefer to get these changes into
geopandasas a series of PRs, if possible. Probably break things up by method?Release strategy
Once the whole thing is “in” and a, I think it’d be nice to cut this as a new release. This is a lot after all!
At this point
geoplotis a fairly mature an independent implementation of geospatial plotting tooling, with an API that’s very different from the one thatgeopandasuses. I forsee that the two will continue to exist as independent packages.I would like to do the following:
geopandasone.Sadly I have not had much time to work on
geoplotas of late, but maybe in the next few months I will be able to set aside some time to sprint on it some more.