High-level geospatial data visualization library for Python.

Overview

geoplot: geospatial data visualization

Gitter Binder

geoplot is a high-level Python geospatial plotting library. It's an extension to cartopy and matplotlib which makes mapping easy: like seaborn for geospatial. It comes with the following features:

  • High-level plotting API: geoplot is cartographic plotting for the 90% of use cases. All of the standard-bearermaps that you’ve probably seen in your geography textbook are easily accessible.
  • Native projection support: The most fundamental peculiarity of geospatial plotting is projection: how do you unroll a sphere onto a flat surface (a map) in an accurate way? The answer depends on what you’re trying to depict. geoplot provides these options.
  • Compatibility with matplotlib: While matplotlib is not a good fit for working with geospatial data directly, it’s a format that’s well-incorporated by other tools.

Installation is simple with conda install geoplot -c conda-forge. See the documentation for help getting started.

Comments
  • norm_cmap isn't in geopandas

    norm_cmap isn't in geopandas

    Here: https://github.com/ResidentMario/geoplot/blob/master/geoplot/geoplot.py#L6

    geoplot seems to be outdated w/r/t geopandas. I'm not sure where the norm_cmap function got moved, but it doesn't seem to be there anymore...

    opened by choldgraf 50
  • slim down the repository!

    slim down the repository!

    I just cloned geoplot and it's >100MB!

    I bet a lot of this comes from the data module...could you host that data online somewhere (e.g. figshare?) and have users download it similarly to the geopandas.datasets module?

    enhancement 
    opened by choldgraf 19
  • Geoplot Webmap is upside down

    Geoplot Webmap is upside down

    Trying to follow the KDEplot + webmap tutorial but the webmap renders upside down and no combination of parameter specifications or tweaking will get it to render in the correct orientation.

    Code copied from here: https://residentmario.github.io/geoplot/gallery/plot_boston_airbnb_kde.html

    Resulting plot from plt.show():

    boston-airbnb-kde

    Any insights on how to fix / flip the webmap?

    opened by alexander-hamme 14
  • Failing voronoi example with the new 0.2.2 release

    Failing voronoi example with the new 0.2.2 release

    The geoplot release seems to have broken the geopandas examples (the voronoi one). I am getting the following error on our readthedocs build:

    Unexpected failing examples:
    /home/docs/checkouts/readthedocs.org/user_builds/geopandas/checkouts/latest/examples/plotting_with_geoplot.py failed leaving traceback:
    Traceback (most recent call last):
      File "/home/docs/checkouts/readthedocs.org/user_builds/geopandas/checkouts/latest/examples/plotting_with_geoplot.py", line 80, in <module>
        linewidth=0)
      File "/home/docs/checkouts/readthedocs.org/user_builds/geopandas/conda/latest/lib/python3.6/site-packages/geoplot/geoplot.py", line 2133, in voronoi
        geoms = _build_voronoi_polygons(df)
      File "/home/docs/checkouts/readthedocs.org/user_builds/geopandas/conda/latest/lib/python3.6/site-packages/geoplot/geoplot.py", line 2687, in _build_voronoi_polygons
        ls = np.vstack([np.asarray(infinite_segments), np.asarray(finite_segments)])
      File "/home/docs/checkouts/readthedocs.org/user_builds/geopandas/conda/latest/lib/python3.6/site-packages/numpy/core/shape_base.py", line 234, in vstack
        return _nx.concatenate([atleast_2d(_m) for _m in tup], 0)
    ValueError: all the input arrays must have same number of dimensions
    
    opened by jorisvandenbossche 12
  • Make dataset example self-contained

    Make dataset example self-contained

    I've consolidated the example datasets under a geopandas-like geoplot.datasets domain (here).

    This has the beneficial effect that it makes all of the examples in the geoplot documentation, especially the ones in the gallery, immediately reproducible for the user. However, the drawback is that I also have to distribute the example data with the library. After hewing and hawing every which way, I've gotten that down to a ~10 MB examples.zip file.

    @choldgraf I would like your feedback on this idea. Is a 10 MB add-on like this an acceptable load for such a library? Or should I maybe provide an nltk-like downloader instead?

    enhancement 
    opened by ResidentMario 11
  • Legends

    Legends

    Hi there. Here is the alteration that seems to pass your tests and fixes the legends. In particular

    • circle style for _paint_carto_legend is now consistent with the plot itself (edge colors, face colors)
    • by default Sankey lines have round end filling
    • Sankey now renders a new type of legend, _paint_sankey_legend that draws lines, also style-consistent.
    • Legends now add legend artist to the plot on the contrary to calling ax.Legend.

    A few questions/warnings

    • I don't mean this PR to be accepted (at this time), but rather to be a place for you to express your concerns/opinions
    1. I didn't get why you plot markers with 20*(dscale(x))**(1/2) in _paint_carto_legend. As I "fixed" markersize in the N1, it might now affect your example images.

    2. while adding artists fixed an issue with double legend for me, it might affect plotting multiple subplots. To my shape, I didn't check that yet. Still, I think there should be a way to have multiple legends on multiple subplots.

    3. As I plot network, I'd like to have one scaling factor both for nodes (points) and edges (sankey). Currently the only way to do that is to calculate upper bound from one using data from another.

    4. Generally, do you think if it makes sense to add yet another type of plot - [geo]network? and handle everything with nodes and legends there?

    opened by Casyfill 11
  • Error importing geopandas

    Error importing geopandas

    I tried to install geoplot in various different ways but can never get rid of errors.

    I first tried to create a conda venv from scratch and install: conda install geoplot -c conda-forge I open a Jupyter Notebook, go through your quick start and get stuck at the very beginning when importing geopandas.

    Thinking that this was an issur vith my venv, I decided to completely clone your github repo ResidentMario/geoplot and creata a brand new environment from your environment.yml. I did that, and run my Jupyter Notebook from that geoplot-dev venv: I still cannot import geopandas without error.

    That is strange, I have no clue on how to get set-up and use geoplot at that point. Would be glad if you can help.


    ImportError Traceback (most recent call last) in ----> 1 import geopandas as gpd

    ~/opt/anaconda3/envs/geoplot-dev/lib/python3.8/site-packages/geopandas/init.py in 3 from geopandas.array import _points_from_xy as points_from_xy # noqa 4 ----> 5 from geopandas.io.file import read_file # noqa 6 from geopandas.io.sql import read_postgis # noqa 7 from geopandas.tools import sjoin # noqa

    ~/opt/anaconda3/envs/geoplot-dev/lib/python3.8/site-packages/geopandas/io/file.py in 4 import pandas as pd 5 ----> 6 import fiona 7 from shapely.geometry import mapping 8 from shapely.geometry.base import BaseGeometry

    ~/opt/anaconda3/envs/geoplot-dev/lib/python3.8/site-packages/fiona/init.py in 82 os.environ["PATH"] = os.environ["PATH"] + ";" + libdir 83 ---> 84 from fiona.collection import BytesCollection, Collection 85 from fiona.drvsupport import supported_drivers 86 from fiona.env import ensure_env_with_credentials, Env

    ~/opt/anaconda3/envs/geoplot-dev/lib/python3.8/site-packages/fiona/collection.py in 7 8 from fiona import compat, vfs ----> 9 from fiona.ogrext import Iterator, ItemsIterator, KeysIterator 10 from fiona.ogrext import Session, WritingSession 11 from fiona.ogrext import buffer_to_virtual_file, remove_virtual_file, GEOMETRY_TYPES

    ImportError: dlopen(/Users/Armellini1/opt/anaconda3/envs/geoplot-dev/lib/python3.8/site-packages/fiona/ogrext.cpython-38-darwin.so, 2): Library not loaded: @rpath/libnetcdf.15.dylib Referenced from: /Users/Armellini1/opt/anaconda3/envs/geoplot-dev/lib/libgdal.26.dylib Reason: image not found

    opened by mtlberri 10
  • Cannot import because other modules missing

    Cannot import because other modules missing

    When I try to import geoplot, I get the following error: ModuleNotFoundError: No module named 'rasterio.io'. I have installed the rasterio package, but I see that it is missing the .io and .vrt modules, both of which are needed to import geoplot. I thought about raising this issue on the rasterio repository but figured I would start here. I'm using Anaconda on OSX.

    Here's the full error message:

    import geoplot Traceback (most recent call last):

    File "", line 1, in import geoplot

    File "/Users/pregiste/opt/anaconda3/lib/python3.7/site-packages/geoplot/init.py", line 1, in from .geoplot import (

    File "/Users/pregiste/opt/anaconda3/lib/python3.7/site-packages/geoplot/geoplot.py", line 17, in import contextily as ctx

    File "/Users/pregiste/opt/anaconda3/lib/python3.7/site-packages/contextily/init.py", line 7, in from .place import Place, plot_map

    File "/Users/pregiste/opt/anaconda3/lib/python3.7/site-packages/contextily/place.py", line 6, in from .tile import howmany, bounds2raster, bounds2img, _sm2ll, _calculate_zoom

    File "/Users/pregiste/opt/anaconda3/lib/python3.7/site-packages/contextily/tile.py", line 20, in from rasterio.io import MemoryFile

    ModuleNotFoundError: No module named 'rasterio.io'

    opened by xtremecheez 10
  • Static binning solution for voroni

    Static binning solution for voroni

    I'm looking to create static category bins so my coloring doesn't change between plots. I'm not sure how to achieve this sort of behavior currently and was looking for assistance.

    My voroni call looks like this, and the data is changing between invocations

    gplt.voronoi(
    		    data, 
    		    projection=ep.proj, clip=clipper,
    		    hue='lmp', cmap='Reds', 
    		    k=10, scheme='fisher_jenks',
    		    ax=ax, alpha=0.9,zorder=7,
    		    edgecolor='white', legend=True,extent=clipper.total_bounds
    		    )
    

    ex. plot 1 image

    ex. plot 2 image

    I would just like to create the bins beforehand, or maybe preprocess the data in some way so that the legend and colors are consistent between plots so I can use them in an animation.

    Thanks!

    opened by eanderson4 10
  • subplot problem

    subplot problem

    I refer on Choropleth subplots

    to subplot spatial map with data.

    individually it works pretty well.

    ax = gplt.polyplot(AB_base )
    
    
    def power_scale(minval, maxval):
    
        def scalar(val):
            val = val + abs(minval) + 1
            return (val/100)**3/150
        return scalar
    
    
    gplt.kdeplot(elevation,  ax=ax,linewidth=0,
                 legend = True,
                 shade_lowest=False,
                 cbar = True,
                  clip=AB_base.geometry, cmap='summer_r',
                      shade=True, alpha = 0.6)
    
    gplt.pointplot(geo_station,  ax=ax,
                   scale= 'elev(m)',  k = None,
                               limits =(1,30) , 
                              scale_func= power_scale,                             
                  hue=geo_station['elev(m)'].astype(float), cmap='viridis_r',
                                   alpha = 0.8,
                   legend=True, legend_var='hue', 
                  )
    
    plt.title("~~~")
    plt.show()
    

    image

    but when I subplot more variables like this:

    def plot_to_ax(state, ax):
       
        
        gplt.polyplot(AB_base, ax = ax)
    
        gplt.kdeplot(elevation, linewidth=0.0, ax = ax,
                     shade_lowest=False,
                     clip=AB_base.geometry, cmap='summer_r',
                     shade=True, alpha = 0.6)
    
        gplt.pointplot(geo_station, k = None, ax=ax,
                       scale= state, limits =(1,30),                           
                       hue= state, 
                       cmap='viridis_r',alpha = 0.8,
                       legend=True, legend_var='hue'
                       )
        
    
    # Finally, plot the data.
    f, axarr = plt.subplots(2, 2, figsize=(5, 5))
    
    plt.subplots_adjust(top=0.95)
    
    plot_state_to_ax('ANUSPLIN_output', axarr[0][0])
    axarr[0][0].set_title('ANUSPLIN (n=6679268)')
    
    plot_state_to_ax('CaPA_output', axarr[0][1])
    axarr[0][1].set_title('CaPA (n=854647)')
    
    plot_state_to_ax('NARR_output', axarr[1][0])
    axarr[1][0].set_title('NARR(n=215065)')
    
    plot_state_to_ax('TPS_output', axarr[1][1])
    axarr[1][1].set_title('TPS (n=126661)')
    

    image

    all plot in one result, I think the method should be good - as reference is from the official tutorial. tried many ways and still get stuck in this problem for 3 days...

    any advice or solutions?

    thanks

    opened by Questionm 9
  • Grey boxes when clipping data with kdeplot

    Grey boxes when clipping data with kdeplot

    Hi!

    I am struggling a bit with the KDEplot and clipping the data on my geometry. When I perform the code on the whole of Germany it works fine, and I get this map:

    image

    While when I try to perform it on the states of Germany, it gives weird results, which are different for each state. See here a few examples:

    image image image

    This is the code:

    def sentimentKDE (data, state, title):
        proj = gcrs.Mercator()
    
        fig = plt.figure(figsize=(15, 10))
        ax1 = plt.subplot(121, projection=proj)
        ax2 = plt.subplot(122, projection=proj) 
    
        gplt.kdeplot(data[data['label']=='Positive'], shade=True, cmap='Reds',clip=geom_germany[geom_germany['GEN'] == state].geometry,ax=ax1,)
        gplt.polyplot(geom_germany[geom_germany['GEN'] == state].geometry,ax=ax1,  facecolor='white')
        ax1.set_title("Positive tweets", fontsize=20)
    
        gplt.kdeplot(data[data['label']=='Negative'], shade=True, cmap='Reds',clip=geom_germany[geom_germany['GEN'] == state].geometry,ax=ax2)
        gplt.polyplot(geom_germany[geom_germany['GEN'] == state].geometry,ax=ax2, facecolor='white',)
        ax2.set_title("Negative tweets", fontsize=20)
    
        plt.savefig(title)
    

    Do you have any idea what is going wrong? Would love the help.

    Thank you in advance!

    opened by MichelleJansen1 8
  • Tests fail with geopandas 0.11

    Tests fail with geopandas 0.11

    It appears that an expected warning is no longer raised:

    _______________________ TestClip.test_clip_init_default ________________________
    
    self = <mixin_tests.TestClip testMethod=test_clip_init_default>
    
        def test_clip_init_default(self):
            clipmixin = self.create_clipmixin()
        
            # UserWarning because we have a narrow clip
    >       with pytest.warns(UserWarning):
    E       Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted. The list of emitted warnings is: [].
    
    tests/mixin_tests.py:593: Failed
    
    opened by QuLogic 0
  • Does geoplot only work with EPSG:4326 unless the projection argument is set?

    Does geoplot only work with EPSG:4326 unless the projection argument is set?

    I'm trying to create a plot using data that is not in EPSG:4326. This is necessary since I need to make computations which require a cartesian coordinate system. This MWE returns a blank plot:

    import geopandas as gpd
    import geoplot as gplt
    import matplotlib.pyplot as plt
    
    # read the following dataset using geopandas method: gplt.datasets.get_path('ny_census')
    ny = gpd.read_file(gplt.datasets.get_path('ny_census'))
    
    # transform the x,y data into that of a projected CRS
    ny_proj = ny.to_crs(32016)
    
    # create a variable for population density
    ny_proj['population_density'] = ny_proj['POP2000'] / ny_proj.area
    
    # create a choropleth map of population density
    gplt.choropleth(ny_proj, hue = 'POP2000')
    plt.show()
    # it's blank
    

    This works, however, using the native plot() method:

    ny_proj.plot()
    plt.show()
    

    I know that I could feed gplt.choropleth() an unprojected geodataframe and then specify the projection argument as something that is projected, but this feels a bit cumbersome and will result in counterintuitive results. E.g., I'd have to attach a variable back to the original ny geodataframe, and if there were units attached to this variable (e.g., meters or feet), these would not match the linear unit of the CRS.

    Am I missing something in my geoplot MWE or was it only intended to work with EPSG:4326?

    opened by mhaffner 0
  • geoplot.kdeplot --> overlapping isolines

    geoplot.kdeplot --> overlapping isolines

    Using the kdeplot, with only one dataset, it appears that isolines are overlapping instead of merging, producing two local maxima instead of a consistent isoline around all features. Screen Shot 2022-02-25 at 9 01 22 AM

    opened by patsaylor 8
  • projection=gcrs.OSGB() sometimes creates a blank plot

    projection=gcrs.OSGB() sometimes creates a blank plot

    Apologies if this turns out to be a cartopy issue (I'm not deeply familiar with cartopy), but after digging around, I can't find anyone else running into it.

    I'm hitting two odd edge cases where setting projection=gcrs.OSGB() creates a blank plot, but AlbersEqualArea() plots fine.

    1. A GeoDataFrame read from the following (Great Britain and Northern Ireland borders), dropping Northern Ireland with .dropna([11]) plots when extent is set but not when it's omitted. AlbersEqualArea() plots fine without extent.
    gplt.polyplot(
        uk_borders_partial,
        zorder=1,
        projection=gcrs.OSGB(approx=False),
        extent=uk_borders_partial.total_bounds,
        edgecolor='gray',
        figsize=(12,12)
        )
    
    1. Setting the previous to ax= and tacking on the following KDEPlot creates a blank plot if clip=uk_borders_partial (Northern Ireland is dropped). Using the full GeoDataFrame or any subset of the full GeoDataFrame that does not drop Northern Ireland, e.g. uk_borders_full[5:12], plots exactly as expected. The code, with Ireland dropped, also plots as expected with AlbersEqualArea(). Just not with OSGB().
    gplt.kdeplot(
        lichen_2011_11,
        clip=uk_borders_partial,
        projection=gcrs.OSGB(approx=False),
        cmap='Reds',
        shade=True,
        ax=ax,
        extent=uk_borders_partial.total_bounds,
        )
    

    Would the latter be an issue with how clip gets passed to seaborn kdeplot?

    Thank you for your help, and for this beautiful library.

    bug 
    opened by data-wombat 1
  • New feature: marker styles

    New feature: marker styles

    Hi,

    it would be really helpful to have a style argument (Grouping variable that will produce points with different markers) similar to what done in seaborn (example)

    feature 
    opened by gcaria 0
  • Make quadtree calculations faster

    Make quadtree calculations faster

    I experimented with a multiprocessing implementation of the quadtree algorithm in the following notebook. The multiprocessing component isn't all that useful, but the changes also include logic for better, faster splitting rules. If I take this to completion it will represent a very significant speedup in this algorithm's runtime.

    enhancement 
    opened by ResidentMario 0
Releases(0.5.1)
  • 0.5.1(Mar 18, 2022)

  • 0.5.0(Feb 27, 2022)

    This maintenance release includes the follows breaking changes:

    • The minimum Python version has been raised to 3.7, as Python 3.6 has now reached EOL (#270).
    • The handling of certain parameters (namely: legend, cmap, and hue) to geoplot.kdeplot has been changed. Previously these parameters were interpreted by geoplot directly. Now they are simply passed down to the underlying seaborn.kdeplot instance (#271, #272).

    This maintenance release includes the following non-breaking changes:

    • Removed the deprecation warning for the long-removed k parameter (#273).
    • Fixed various deprecation notices in underlying libraries (#268, #269).
    • Miscellaneous minor fixes in code and docs.
    Source code(tar.gz)
    Source code(zip)
  • 0.4.4(Sep 10, 2021)

    This release pins geopandas to the minimum supported version. Due to descartes bit-rotting, we now rely on the PolygonPatch implementation internal to geopandas>=0.9.0 (the most recent major version, at time of writing). See further https://github.com/geopandas/geopandas/pull/1677, #238, #249.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.3(Jul 4, 2021)

    This maintenance release fixes a few bugs, updates the projection list (#243), and removes this library's dependency on the no-longer-maintained descartes library ( #238).

    Note: 0.4.2 was skipped due to a bug (#245).

    Source code(tar.gz)
    Source code(zip)
  • 0.4.1(May 17, 2020)

    This is a maintenance release mostly fixing deprecations caused by changes in geopandas and contextily.

    There is one minor user-facing change: the API for providing webmap tiles to webmap has changed. Refer to the documentation for details.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Nov 1, 2019)

    This release is a major breaking refactor of the colormap parameters in geoplot.

    Changes to the scheme parameter and the removal of k parameter

    In previous versions of geoplot, categorical colormaps were specified by a combination of the scheme and k string parameters. For example:

    import geoplot as gplt
    df = gpd.read_file(gplt.datasets.get_path('usa_cities'))
    gplt.pointplot(df, hue='ELEV_IN_FT', cmap='viridis', scheme='EqualInterval', k=5)
    

    In versions of geoplot 0.4.0 and later, the code to do this is now:

    gplt.pointplot(df, hue='ELEV_IN_FT', cmap='viridis', scheme='EqualInterval')
    

    Or this:

    import mapclassify as mc
    scheme = mc.EqualInterval(df['ELEV_IN_FT'], k=5)
    gplt.pointplot(df, hue='ELEV_IN_FT', cmap='viridis', scheme=scheme)
    

    This changeset was implemented primarily to make it possible to share the same colormap across plots. This was previously very difficult to do: see #163 and #182 for further context.

    Other changes

    This update also includes a number of minor bugfixes and docs changes.

    Source code(tar.gz)
    Source code(zip)
  • 0.3.3(Oct 7, 2019)

  • 0.3.2(Sep 21, 2019)

    This release brings a revamped test suite and a variety of bug fixes to geoplot, as well as one breaking change:

    • The default behavior of the hue variable has changed. Previously, a categorical colormap with k=5 was the default. Now, a continuous colormap with k=None is the default.
    Source code(tar.gz)
    Source code(zip)
  • 0.3.1(Aug 24, 2019)

    This is an incremental release that fixes some bugs and adds some new features to geoplot.

    • The default extent determination code has been improved.
    • A plot type, webmap, and henceforth a new dependency, contextily (#169).
    • A new projection type, WebMercator, usable but all plot types but especially relevant to the new webmap plot type.
    • All plots that support the hue visual parameter now additionally support a norm parameter for performing colormap normalization (#168).
    • Inputting a Series or GeoSeries to a parameter that accepts flexible types now correctly uses the input data's index (#165).

    Also, while this is now a code change, geoplot now has an official Gitter room! Go there to ask questions about working with or developing on this library.

    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Jul 5, 2019)

    This release is the first comprehensive overhaul of geoplot since its initial design and release in early 2017. While this release adds no new "large-scale" features, you can except a much more polished user experience with 0.3.0 than previously existed.

    Breaking changes include (highlights in bold):

    • The categorical argument has been removed. geoplot will now infer when a column is categorical automatically.
    • The overly complicated aggplot plot type has been removed and replaced with the simplified quadtree. Most parameters are the same, but the convex hull and auto-choropleth features have been removed.
    • Plots now use the center of the GeoDataFrame bounding box geometry (via GeoDataFrame.total_bounds) instead of the cumulative average of the individual geometries, which is both faster and more accurate.
    • The order of arguments for the extent parameter has changed. Previously it took a tuple of (xmin, xmax, ymin, ymax); now it takes a tuple of (xmin, ymin, xmax, ymax), for compatibility with GeoDataFrame.total_bounds.
    • When overplotting multiple plots on a single axis, the projection now need only be specified once, instead of once per plot function.
    • The sankey has been reworked. path, from, and to have been removed; line geometries are now read from the GeoDataFrame instead of transformed just-in-time. This brings sankey more in line with the rest of the plots in the geoplot.
    • The trace and trace_kwargs parameters have been removed from cartogram. To add a trace to a cartogram plot, overplot a polyplot instead.
    • cmap now defaults to viridis (as in matplotlib) instead of Set1.
    • The minimum Python version has been raised from 3.5 to 3.6.
    • polyplot now defaults to zorder=-1 (e.g. "bottom of the plot").
    • kdeplot now defaults to shade_lowest=False.
    • The vmin and vmax parameters have been removed.

    Other changes include:

    • A number of edge cases have been addressed and reliability has been improved, particularly in the case of the voronoi and quadtree plot types.
    • Certain common bad combinations of parameters will now raise helpful error messages instead of failing inexplicably or doing the wrong thing.
    • The documentation has been completely rewritten for ease of use and clarity.
    • Certain parameters like clip now accept more types of inputs.
    • Code has been refactored with new Plot and {Feature}Mixin classes, which greatly increases code reuse and extensibility and will make adding new plot types in the future much easier.
    Source code(tar.gz)
    Source code(zip)
  • 0.0.4(Oct 15, 2017)

Owner
Aleksey Bilogur
Building tools for doing data science @spellml. {📊, 💻, 🛠️}. Previously: @quiltdata, @recursecenter, @Kaggle, @MODA-NYC.
Aleksey Bilogur
A TileDB backend for xarray.

TileDB-xarray This library provides a backend engine to xarray using the TileDB Storage Engine. Example usage: import xarray as xr dataset = xr.open_d

TileDB, Inc. 14 Jun 02, 2021
Schema validation for Xarray objects

xarray-schema Schema validation for Xarray installation This package is in the early stages of development. Install it from source: pip install git+gi

carbonplan 22 Oct 31, 2022
A workshop on data visualization in Python with notebooks and exercises for following along.

Beyond the Basics: Data Visualization in Python The human brain excels at finding patterns in visual representations, which is why data visualizations

Stefanie Molin 162 Dec 05, 2022
Statistics and Visualization of acceptance rate, main keyword of CVPR 2021 accepted papers for the main Computer Vision conference (CVPR)

Statistics and Visualization of acceptance rate, main keyword of CVPR 2021 accepted papers for the main Computer Vision conference (CVPR)

Hoseong Lee 78 Aug 23, 2022
A Python toolbox for gaining geometric insights into high-dimensional data

"To deal with hyper-planes in a 14 dimensional space, visualize a 3D space and say 'fourteen' very loudly. Everyone does it." - Geoff Hinton Overview

Contextual Dynamics Laboratory 1.8k Dec 29, 2022
A Python function that makes flower plots.

Flower plot A Python 3.9+ function that makes flower plots. Installation This package requires at least Python 3.9. pip install

Thomas Roder 4 Jun 12, 2022
Gesture controlled media player

Media Player Gesture Control Gesture controller for media player with MediaPipe, VLC and OpenCV. Contents About Setup About A tool for using gestures

Atharva Joshi 2 Dec 22, 2021
Draw tree diagrams from indented text input

Draw tree diagrams This repository contains two very different scripts to produce hierarchical tree diagrams like this one: $ ./classtree.py collectio

Luciano Ramalho 8 Dec 14, 2022
Python library that makes it easy for data scientists to create charts.

Chartify Chartify is a Python library that makes it easy for data scientists to create charts. Why use Chartify? Consistent input data format: Spend l

Spotify 3.2k Jan 01, 2023
Example scripts for generating plots of Bohemian matrices

Bohemian Eigenvalue Plotting Examples This repository contains examples of generating plots of Bohemian eigenvalues. The examples in this repository a

Bohemian Matrices 5 Nov 12, 2022
A grammar of graphics for Python

plotnine Latest Release License DOI Build Status Coverage Documentation plotnine is an implementation of a grammar of graphics in Python, it is based

Hassan Kibirige 3.3k Jan 01, 2023
a plottling library for python, based on D3

Hello August 2013 Hello! Maybe you're looking for a nice Python interface to build interactive, javascript based plots that look as nice as all those

Mike Dewar 1.4k Dec 28, 2022
Some examples with MatPlotLib library in Python

MatPlotLib Example Some examples with MatPlotLib library in Python Point: Run files only in project's directory About me Full name: Matin Ardestani Ag

Matin Ardestani 4 Mar 29, 2022
Generate visualizations of GitHub user and repository statistics using GitHub Actions.

GitHub Stats Visualization Generate visualizations of GitHub user and repository statistics using GitHub Actions. This project is currently a work-in-

JoelImgu 3 Dec 14, 2022
Displaying plot of death rates from past years in Poland. Data source from these years is in readme

Average-Death-Rate Displaying plot of death rates from past years in Poland The goal collect the data from a CSV file count the ADR (Average Death Rat

Oliwier Szymański 0 Sep 12, 2021
Glue is a python project to link visualizations of scientific datasets across many files.

Glue Glue is a python project to link visualizations of scientific datasets across many files. Click on the image for a quick demo: Features Interacti

675 Dec 09, 2022
visualize_ML is a python package made to visualize some of the steps involved while dealing with a Machine Learning problem

visualize_ML visualize_ML is a python package made to visualize some of the steps involved while dealing with a Machine Learning problem. It is build

Ayush Singh 164 Dec 12, 2022
Visualize large time-series data in plotly

plotly_resampler enables visualizing large sequential data by adding resampling functionality to Plotly figures. In this Plotly-Resampler demo over 11

PreDiCT.IDLab 604 Dec 28, 2022
🗾 Streamlit Component for rendering kepler.gl maps

streamlit-keplergl 🗾 Streamlit Component for rendering kepler.gl maps in a streamlit app. 🎈 Live Demo 🎈 Installation pip install streamlit-keplergl

Christoph Rieke 39 Dec 14, 2022
Rick and Morty Data Visualization with python

Rick and Morty Data Visualization For this project I looked at data for the TV show Rick and Morty Number of Episodes at a Certain Location Here is th

7 Aug 29, 2022