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 Python package for caclulations and visualizations in geological sciences.

geo_calcs A Python package for caclulations and visualizations in geological sciences. Free software: MIT license Documentation: https://geo-calcs.rea

Drew Heasman 1 Jul 12, 2022
Declarative statistical visualization library for Python

Altair http://altair-viz.github.io Altair is a declarative statistical visualization library for Python. With Altair, you can spend more time understa

Altair 8k Jan 05, 2023
Visualization Library

CamViz Overview // Installation // Demos // License Overview CamViz is a visualization library developed by the TRI-ML team with the goal of providing

Toyota Research Institute - Machine Learning 67 Nov 24, 2022
It's an application to calculate I from v and r. It can also plot a graph between V vs I.

Ohm-s-Law-Visualizer It's an application to calculate I from v and r using Ohm's Law. It can also plot a graph between V vs I. Story I'm doing my Unde

Sihab Sahariar 1 Nov 20, 2021
Manim is an animation engine for explanatory math videos.

A community-maintained Python framework for creating mathematical animations.

12.4k Dec 30, 2022
Collection of scripts for making high quality beautiful math-related posters.

Poster Collection of scripts for making high quality beautiful math-related posters. The poster can have as large printing size as 3x2 square feet wit

Nattawut Phetmak 3 Jun 09, 2022
Fast 1D and 2D histogram functions in Python

About Sometimes you just want to compute simple 1D or 2D histograms with regular bins. Fast. No nonsense. Numpy's histogram functions are versatile, a

Thomas Robitaille 237 Dec 18, 2022
Data Visualizer Web-Application

Viz-It Data Visualizer Web-Application If I ask you where most of the data wrangler looses their time ? It is Data Overview and EDA. Presenting "Viz-I

Sagnik Roy 17 Nov 20, 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 04, 2023
Designed a greedy algorithm based on Markov sequential decision-making process in MATLAB/Python to optimize using Gurobi solver

Designed a greedy algorithm based on Markov sequential decision-making process in MATLAB/Python to optimize using Gurobi solver, the wheel size, gear shifting sequence by modeling drivetrain constrai

Sabbella Prasanna 1 Jan 11, 2022
This is a web application to visualize various famous technical indicators and stocks tickers from user

Visualizing Technical Indicators Using Python and Plotly. Currently facing issues hosting the application on heroku. As soon as I am able to I'll like

4 Aug 04, 2022
Some problems of SSLC ( High School ) before outputs and after outputs

Some problems of SSLC ( High School ) before outputs and after outputs 1] A Python program and its output (output1) while running the program is given

Fayas Noushad 3 Dec 01, 2021
Simple function to plot multiple barplots in the same figure.

Simple function to plot multiple barplots in the same figure. Supports padding and custom color.

Matthias Jakobs 2 Feb 21, 2022
Generate a 3D Skyline in STL format and a OpenSCAD file from Gitlab contributions

Your Gitlab's contributions in a 3D Skyline gitlab-skyline is a Python command to generate a skyline figure from Gitlab contributions as Github did at

Félix Gómez 70 Dec 22, 2022
paintable GitHub contribute table

githeart paintable github contribute table how to use: Functions key color select 1,2,3,4,5 clear c drawing mode mode on turn off e print paint matrix

Bahadır Araz 27 Nov 24, 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
Python Data. Leaflet.js Maps.

folium Python Data, Leaflet.js Maps folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the Leaflet.js

6k Jan 02, 2023
Create a table with row explanations, column headers, using matplotlib

Create a table with row explanations, column headers, using matplotlib. Intended usage was a small table containing a custom heatmap.

4 Aug 14, 2022
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
3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)

PyVista Deployment Build Status Metrics Citation License Community 3D plotting and mesh analysis through a streamlined interface for the Visualization

PyVista 1.6k Jan 08, 2023