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
649 Pokémon palettes as CSVs, with a Python lib to turn names/IDs into palettes, or MatPlotLib compatible ListedColormaps.

PokePalette 649 Pokémon, broken down into CSVs of their RGB colour palettes. Complete with a Python library to convert names or Pokédex IDs into eithe

11 Dec 05, 2022
A simple script that displays pixel-based animation on GitHub Activity

GitHub Activity Animator This project contains a simple Javascript snippet that produces an animation on your GitHub activity tracker. The project als

16 Nov 15, 2021
Visualizations of linear algebra algorithms for people who want a deep understanding

Visualising algorithms on symmetric matrices Examples QR algorithm and LR algorithm Here, we have a GIF animation of an interactive visualisation of t

ogogmad 3 May 05, 2022
Alternative layout visualizer for ZSA Moonlander keyboard

General info This is a keyboard layout visualizer for ZSA Moonlander keyboard (because I didn't find their Oryx or their training tool particularly us

10 Jul 19, 2022
Certificate generating and sending system written in Python.

Certificate Generator & Sender How to use git clone https://github.com/saadhaxxan/Certificate-Generator-Sender.git cd Certificate-Generator-Sender Add

Saad Hassan 11 Dec 01, 2022
A pandas extension that solves all problems of Jalai/Iraninan/Shamsi dates

Jalali Pandas Extentsion A pandas extension that solves all problems of Jalai/Iraninan/Shamsi dates Features Series Extenstion Convert string to Jalal

51 Jan 02, 2023
Blender addon that creates a temporary window of any type from the 3D View.

CreateTempWindow2.8 Blender addon that creates a temporary window of any type from the 3D View. Features Can the following window types: 3D View Graph

3 Nov 27, 2022
2D maze path solver visualizer implemented with python

2D maze path solver visualizer implemented with python

SS 14 Dec 21, 2022
LabGraph is a a Python-first framework used to build sophisticated research systems with real-time streaming, graph API, and parallelism.

LabGraph is a a Python-first framework used to build sophisticated research systems with real-time streaming, graph API, and parallelism.

MLH Fellowship 7 Oct 05, 2022
Profile and test to gain insights into the performance of your beautiful Python code

Profile and test to gain insights into the performance of your beautiful Python code View Demo - Report Bug - Request Feature QuickPotato in a nutshel

Joey Hendricks 138 Dec 06, 2022
Epagneul is a tool to visualize and investigate windows event logs

epagneul Epagneul is a tool to visualize and investigate windows event logs. Dep

jurelou 190 Dec 13, 2022
Create animated and pretty Pandas Dataframe or Pandas Series

Rich DataFrame Create animated and pretty Pandas Dataframe or Pandas Series, as shown below: Installation pip install rich-dataframe Usage Minimal exa

Khuyen Tran 92 Dec 26, 2022
NW 2022 Hackathon Project by Angelique Clara Hanzel, Aryan Sonik, Damien Fung, Ramit Brata Biswas

Spiral-Data-Visualizer NW 2022 Hackathon Project by Angelique Clara Hanzell, Aryan Sonik, Damien Fung, Ramit Brata Biswas Description This project vis

Damien Fung 2 Jan 16, 2022
Resources for teaching & learning practical data visualization with python.

Practical Data Visualization with Python Overview All views expressed on this site are my own and do not represent the opinions of any entity with whi

Paul Jeffries 98 Sep 24, 2022
100 data puzzles for pandas, ranging from short and simple to super tricky (60% complete)

100 pandas puzzles Puzzles notebook Solutions notebook Inspired by 100 Numpy exerises, here are 100* short puzzles for testing your knowledge of panda

Alex Riley 1.9k Jan 08, 2023
This is my favourite function - the Rastrigin function.

This is my favourite function - the Rastrigin function. What sparked my curiosity and interest in the function was its complexity in terms of many local optimum points, which makes it particularly in

1 Dec 27, 2021
A small collection of tools made by me, that you can use to visualize atomic orbitals in both 2D and 3D in different aspects.

Orbitals in Python A small collection of tools made by me, that you can use to visualize atomic orbitals in both 2D and 3D in different aspects, and o

Prakrisht Dahiya 1 Nov 25, 2021
GD-UltraHack - A Mod Menu for Geometry Dash. Specifically a MegahackV5 clone in Python. Only for Windows

GD UltraHack: The Mod Menu that Nobody asked for. This is a mod menu for the gam

zeo 1 Jan 05, 2022
Visualize tensors in a plain Python REPL using Sparklines

Visualize tensors in a plain Python REPL using Sparklines

Shawn Presser 43 Sep 03, 2022
A flexible tool for creating, organizing, and sharing visualizations of live, rich data. Supports Torch and Numpy.

Visdom A flexible tool for creating, organizing, and sharing visualizations of live, rich data. Supports Python. Overview Concepts Setup Usage API To

FOSSASIA 9.4k Jan 07, 2023