Visualizations for machine learning datasets

Overview

Introduction

The facets project contains two visualizations for understanding and analyzing machine learning datasets: Facets Overview and Facets Dive.

The visualizations are implemented as Polymer web components, backed by Typescript code and can be easily embedded into Jupyter notebooks or webpages.

Live demos of the visualizations can be found on the Facets project description page.

Facets Overview

Overview visualization of UCI census data

Overview gives a high-level view of one or more data sets. It produces a visual feature-by-feature statistical analysis, and can also be used to compare statistics across two or more data sets. The tool can process both numeric and string features, including multiple instances of a number or string per feature.

Overview can help uncover issues with datasets, including the following:

  • Unexpected feature values
  • Missing feature values for a large number of examples
  • Training/serving skew
  • Training/test/validation set skew

Key aspects of the visualization are outlier detection and distribution comparison across multiple datasets. Interesting values (such as a high proportion of missing data, or very different distributions of a feature across multiple datasets) are highlighted in red. Features can be sorted by values of interest such as the number of missing values or the skew between the different datasets.

The python code to generate the statistics for visualization can be installed through pip install facets-overview.

Details about Overview usage can be found in its README.

Facets Dive

Dive visualization of UCI census data

Dive is a tool for interactively exploring up to tens of thousands of multidimensional data points, allowing users to seamlessly switch between a high-level overview and low-level details. Each example is a represented as single item in the visualization and the points can be positioned by faceting/bucketing in multiple dimensions by their feature values. Combining smooth animation and zooming with faceting and filtering, Dive makes it easy to spot patterns and outliers in complex data sets.

Details about Dive usage can be found in its README.

Setup

Usage in Google Colabratory/Jupyter Notebooks

Using Facets in Google Colabratory and Jupyter notebooks can be seen in this notebook. These notebooks work without the need to first download/install this repository.

Both Facets visualizations make use of HTML imports. So in order to use them, you must first load the appropriate polyfill, through <script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.3.3/webcomponents-lite.js"></script>, as shown in the demo notebooks in this repo.

Note that for using Facets Overview in a Jupyter notebook, there are two considerations:

  1. In the notebook, you will need to change the path that the Facets Overview python code is loaded from to the correct path given where your notebook kernel is run from.
  2. You must also have the Protocol Buffers python runtime library installed: https://github.com/google/protobuf/tree/master/python. If you used pip or anaconda to install Jupyter, you can use the same tool to install the runtime library.

When visualizing a large amount of data in Dive in a Juypter notebook, as is done in the Dive demo Jupyter notebook, you will need to start the notebook server with an increased IOPub data rate. This can be done with the command jupyter notebook --NotebookApp.iopub_data_rate_limit=10000000.

Code Installation

git clone https://github.com/PAIR-code/facets
cd facets

Building the Visualizations

If you make code changes to the visualization and would like to rebuild them, follow these directions:

  1. Install bazel: https://bazel.build/
  2. Build the visualizations: bazel build facets:facets_jupyter (run from the facets top-level directory)

Using the rebuilt Visualizations in a Jupyter notebook

If you want to use the visualizations you built locally in a Jupyter notebook, follow these directions:

  1. Move the resulting vulcanized html file from the build step into the facets-dist directory: cp -f bazel-bin/facets/facets-jupyter.html facets-dist/
  2. Install the visualizations into Jupyter as an nbextension.
  • If jupyter was installed with pip, you can use jupyter nbextension install facets-dist/ if jupyter was installed system-wide or jupyter nbextension install facets-dist/ --user if installed per-user (run from the facets top-level directory). You do not need to run any follow-up jupyter nbextension enable command for this extension.
  • Alternatively, you can manually install the nbextension by finding your jupyter installation's share/jupyter/nbextensions folder and copying the facets-dist directory into it.
  1. In the notebook cell's HTML link tag that loads the built facets html, load from /nbextensions/facets-dist/facets-jupyter.html, which is the locally installed facets distribution. from the previous step.

Known Issues

  • The Facets visualizations currently work only in Chrome - Issue 9.

Disclaimer: This is not an official Google product

Comments
  • display(HTML(html)) doesn't display anything

    display(HTML(html)) doesn't display anything

    anyone could make the overview work in jupyter? i followed all the readme files and at end the display doesn't display anything and don't give me any errors too... i'm missing something?

    opened by FabricioProjects 17
  • Dive_demo.ipynb doesn't show the data

    Dive_demo.ipynb doesn't show the data

    I'm trying to run the Dive_demo.ipynb example but the HTML interface doesn't show any points. All is set to NONE. I initialized the jupyter as described on readme file: $ jupyter notebook --NotebookApp.iopub_data_rate_limit=10000000

    opened by FabricioProjects 12
  • Build Failure on OSX

    Build Failure on OSX

    Hello,

    Im having an issue trying to build the demo on OSX (Darwin LT5595 16.7.0 Darwin Kernel Version 16.7.0)

    When running the command: bazel run //facets_dive/demo

    I get the output:

    ERROR: /Users/saul.fuhrmann/FacetsTest/facets/WORKSPACE:17:1: Traceback (most recent call last):
    	File "/Users/saul.fuhrmann/FacetsTest/facets/WORKSPACE", line 17
    		closure_repositories()
    	File "/private/var/tmp/_bazel_saul.fuhrmann/64e17fd1086fe39cfd460d5fa053149c/external/io_bazel_rules_closure/closure/repositories.bzl", line 69, in closure_repositories
    		_check_bazel_version("Closure Rules", "0.4.5")
    	File "/private/var/tmp/_bazel_saul.fuhrmann/64e17fd1086fe39cfd460d5fa053149c/external/io_bazel_rules_closure/closure/repositories.bzl", line 172, in _check_bazel_version
    		fail(("%s requires Bazel >=%s but was...)))
    Closure Rules requires Bazel >=0.4.5 but was 0.10.0-homebrew
    ERROR: Error evaluating WORKSPACE file
    ERROR: error loading package '': Encountered error while reading extension file 'third_party/workspace.bzl': no such package '@org_tensorflow_tensorboard//third_party': error loading package 'external': Could not load //external package
    ERROR: error loading package '': Encountered error while reading extension file 'third_party/workspace.bzl': no such package '@org_tensorflow_tensorboard//third_party': error loading package 'external': Could not load //external package
    INFO: Elapsed time: 0.104s
    FAILED: Build did NOT complete successfully (0 packages loaded)
    ERROR: Build failed. Not running target
    

    It seems that _check_bazel_version("Closure Rules", "0.4.5") is causing the error. Has anyone encountered this issue before? What would be the best way to resolve it?

    Thanks,

    Saul

    opened by frmsaul 10
  • is it possible to load the protobuf binary format directly and display in Web Pages ?

    is it possible to load the protobuf binary format directly and display in Web Pages ?

    The Facets-Overview seems to have two implementations: Python and Javascripts. Both generate the corresponding protobuf implemenations from the protobuf definition, then both generate the same UI.

    I created a Scala Protobuf implementation using Spark DataFrame to generate the stats ( except for tensorflow). I save the protobuf base64 encoded binary string to a file and reload back with Python using the with open("path-to-binary", "rb") as f: content = f.read() protostr = content.decode("utf-8")

    the pass to the HTML_TEMPLATE as show in the code. This works great.

    I would like to do the same for Web rendering: Notice that in "gh-pages" branch, the rendering is done in index.html where

    $.when(trainAjax(), testAjax()).done(function(trainAjax, testAjax) { var overview = $("#foelem")[0]; var proto = overview.getStatsProto([ {data: trainAjax[0], name: "train"}, {data: testAjax[0], name: "test"}]); overview.protoInput = proto;

      $("#fdelem")[0].data = testAjax[0];
    });
    

    Here proto is the input DatasetFeatureStatisticsList. I try to load the binary, base64 string, none of that works. Here "stats.pb" is the binary file; "stats.txt" is the base64 encoded binary file.

    $.when(trainAjax(), testAjax(), protoAjax()).done(function(trainAjax, testAjax, protoAjax) { var overview = $("#foelem")[0];

        overview.protoInput =protoAjax; 
    
      $("#fdelem")[0].data = testAjax[0];
    });
    function trainAjax() {
      return $.getJSON({url: "train.json"});
    }
    function testAjax() {
      return $.getJSON({url: "test.json"});
    }
    function protoAjax() {
      <--
        or use stats.txt for base64encoded binary string
       -->
       return $.get({url: "stats.pb"}); 
    }
    

    }

    Is there an example, on how to reuse the binary format for web rendering in Javascript ? In this way, we just need use one implementation and results can be re-used for both Python, and Web.

    Please advice.

    opened by chesterchen-gpsw 8
  • facets dive problem of zoomed options

    facets dive problem of zoomed options

    Hi everyone,

    i'm trying to use Google Facets Dive to rapresent a confusion matrix of data in a jupyter notebook, on Chrome (windows 10).

    The problem is that options are incredibly zoomed (like +, - and other rapresentation options). Only reloading the jupyter notebook all the visualization is correctly zoomed. I would like not to reload everytime the page. How can i do?

    I'm using an example and this is my code

    HTML_TEMPLATE = """
            <script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.3.3/webcomponents-lite.js"></script>
            
            <link rel="import" href="/nbextensions/facets-dist/facets-jupyter.html">
            
            <facets-dive id="fd" height="600"></facets-dive>
            <script>
              var data = {jsonstr};
              var fd = document.querySelector("#fd");
              fd.data = data;
              fd['verticalFacet'] = 'predicted';
              fd['verticalBuckets'] = 8;
              fd['horizontalFacet'] = 'expected';
              fd['horizontalBuckets'] = 8;
              fd['colorBy'] = 'expected';
            </script>
            """
    
    jsonstr = df.to_json(orient='records')
    
    html = HTML_TEMPLATE.format(jsonstr=jsonstr)
    display(HTML(html))
    
    opened by matteopulega 7
  • Specify url

    Specify url

    Just run the test example in facets_dive/components. When trying to add user defined images, I generated a 800x100 png with 8 symbols in it, put it into the components/facets_dive folder and set atlas-url="test_sprite.png" in facets-dive.html But it's not found. INFO: 28,851µs /0:0:0:0:0:0:0:1:51068 404 GET /facets-dive/components/facets-dive/test_sprite.png How to specify the url?

    opened by makroid 7
  • Getting 404 GET /nbextensions/facets-dist/facets-jupyter.html

    Getting 404 GET /nbextensions/facets-dist/facets-jupyter.html

    After installing I'm getting a 404... is this due to missing nbextension config possibly?

    ✔ ~/projects/wisdot 
    04:26 $ jupyter notebook --NotebookApp.iopub_data_rate_limit=10000000
    [I 04:26:39.830 NotebookApp] [nb_conda_kernels] enabled, 4 kernels found
    [I 04:26:40.312 NotebookApp] ✓ nbpresent HTML export ENABLED
    [W 04:26:40.313 NotebookApp] ✗ nbpresent PDF export DISABLED: No module named nbbrowserpdf.exporters.pdf
    [I 04:26:40.353 NotebookApp] [jupyter_nbextensions_configurator] enabled 0.2.5
    [I 04:26:40.358 NotebookApp] [nb_conda] enabled
    [I 04:26:40.379 NotebookApp] [nb_anacondacloud] enabled
    [I 04:26:40.386 NotebookApp] Serving notebooks from local directory: /Users/charles.hack/projects/wisdot
    [I 04:26:40.386 NotebookApp] 0 active kernels 
    [I 04:26:40.387 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
    [I 04:26:40.387 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
    0:42: execution error: "http://localhost:8888/tree" doesn’t understand the “open location” message. (-1708)
    [W 04:26:53.917 NotebookApp] 404 GET /api/kernels/8d085097-d70c-4684-b62c-c8918fe91922/channels?session_id=B9C7E2A87D1C4FD185022437200F1AA1 (::1): Kernel does not exist: 8d085097-d70c-4684-b62c-c8918fe91922
    [W 04:26:53.946 NotebookApp] 404 GET /api/kernels/8d085097-d70c-4684-b62c-c8918fe91922/channels?session_id=B9C7E2A87D1C4FD185022437200F1AA1 (::1) 38.32ms referer=None
    [W 04:27:10.343 NotebookApp] Replacing stale connection: 8d085097-d70c-4684-b62c-c8918fe91922:B9C7E2A87D1C4FD185022437200F1AA1
    [I 04:27:38.571 NotebookApp] Saving file at /WisDOT Accidents v170620.ipynb
    [I 04:27:38.896 NotebookApp] Saving file at /WisDOT Accidents v170620.ipynb
    [W 04:27:43.255 NotebookApp] 404 GET /nbextensions//usr/local/share/jupyter/nbextensions/facets-jupyter.html.js?v=20170721042639 (::1) 4.62ms referer=http://localhost:8888/notebooks/WisDOT%20Accidents%20v170620.ipynb
    [W 04:27:43.281 NotebookApp] 404 GET /nbextensions/widgets/notebook/js/extension.js?v=20170721042639 (::1) 1.65ms referer=http://localhost:8888/notebooks/WisDOT%20Accidents%20v170620.ipynb
    [W 04:27:44.536 NotebookApp] 404 GET /nbextensions/facets-dist/facets-jupyter.html (::1) 1.72ms referer=http://localhost:8888/notebooks/WisDOT%20Accidents%20v170620.ipynb
    [I 04:27:44.591 NotebookApp] Kernel started: 1f1c3a9e-afee-430c-ac12-6820346bbcf1
    
    opened by hack-c 7
  • Upload big amounts of data to facets overview

    Upload big amounts of data to facets overview

    Hello,

    I have to inquiries:

    • First, I have about 2 million records or slightly more dataset that I want to visualize on Facets Overview, ofcourse uploading only 100K was enough to slow down my PC for 2 - 3 minutes. Is there more applicable method to visualize 2M records on Facets? If there are any sample code please show me.

    • Second, I created exported an HTML page of Facets Dive directly through the polymer , however I couldn't use the same method with Facets Overview and had to run it on Jupyter. Is there anything similar to simply replace the with or simply export an HTML webpae through simple Python? Also if I'm using Jupyter notebook, how can I export the result in a separate HTML file while using the display(HTML(html)) function.

    Here is my code for the facets dive: https://github.com/fatimashihab/facets/blob/master/facets%20dive/data_visualization.py

    and code: `HTML_TEMPLATE = u"""

    %(title)s """.strip()

    #export data with open(OUTPUT_FILE_PATH, "wb") as f: final_template = HTML_TEMPLATE % { 'title':'Data Visualization', 'data': dataset.to_json(orient='records'), 'presets': json.dumps(PRESETS) } f.write(final_template.encode('utf-8'))`

    I appreciate your help, please reply asap. Thank you in advance

    opened by fatimashihab 6
  • Unable to view sprite atlas in Dive

    Unable to view sprite atlas in Dive

    I have installed Facets to be used in a jupyter notebook and followed the instructions on the github page. I tried to load the provided notebook, Dive_demo.ipynb, but I am unable to view any data points (although clicking on different areas inside the image does display information on the right hand side). image

    This same visualization displays properly on the facets website https://pair-code.github.io/facets/. image

    Is there any additional setup I must complete to view the default sprite atlas?

    opened by dhaners 6
  • Updated colab_facets.ipynb to make the atlas_url and sprite feature work using base64 data url.

    Updated colab_facets.ipynb to make the atlas_url and sprite feature work using base64 data url.

    Problem: The atlas and sprite feature is missing in the current Colab notebook example. The atlas_url feature in the current Colab example didn't work directly using local files and regular url. There is no easy way to pass the image using atlas_url from Colab.

    Solution: The solution is to read image from the file and convert it into base64 string. Then create a base64 image url from the string and pass the base64 image url directly into atlas_url.

    Added new dive example showing the atlas_url and sprite feature. The notebook works in Colab and is able to show the visualizaiton properly.

    opened by jsiddique 5
  • HTML Imports is deprecated error still here!

    HTML Imports is deprecated error still here!

    image

    I was getting this error so I checked the sample: https://colab.research.google.com/github/PAIR-code/facets/blob/master/colab_facets.ipynb. it is still getting the error.

    I am on linux Ubuntu 18.04.5 LTS, Chrome Version 85.0.4183.121 (Official Build) (64-bit)

    The script is using:

    as recommended as the solution in https://github.com/PAIR-code/facets/issues/206 and https://github.com/PAIR-code/facets/issues/211

    opened by markddesimone 5
  • facets dive demo no longer builds

    facets dive demo no longer builds

    The facets dive demo no longer seems to build. Here is my best attempt in a Dockerfile:

    FROM ubuntu:focal
    
    RUN apt-get update && apt install -y apt-transport-https curl git gnupg
    
    RUN curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor >bazel-archive-keyring.gpg
    RUN mv bazel-archive-keyring.gpg /usr/share/keyrings
    RUN echo "deb [arch=amd64 signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list
    
    RUN apt update && apt install -y bazel
    
    WORKDIR /opt
    
    RUN git clone https://github.com/PAIR-code/facets
    
    WORKDIR /opt/facets
    
    RUN bazel build //facets_dive/demo
    

    The result I see is:

    #13 70.61 WARNING: Download from https://zlib.net/zlib-1.2.11.tar.gz failed: class java.io.FileNotFoundException GET returned 404 Not Found
    #13 70.62 ERROR: An error occurred during the fetch of repository 'net_zlib':
    #13 70.62    Traceback (most recent call last):
    #13 70.62       File "/root/.cache/bazel/_bazel_root/f0edbeac36261ac6bdca9830d0450fbe/external/bazel_tools/tools/build_defs/repo/http.bzl", line 125, column 45, in _http_archive_impl
    #13 70.62               download_info = ctx.download_and_extract(
    #13 70.62 Error in download_and_extract: java.io.IOException: Error downloading [https://zlib.net/zlib-1.2.11.tar.gz] to /root/.cache/bazel/_bazel_root/f0edbeac36261ac6bdca9830d0450fbe/external/net_zlib/temp4907857517448745203/zlib-1.2.11.tar.gz: GET returned 404 Not Found
    
    opened by rmcloughlin 0
  • Support numpy >= 1.23

    Support numpy >= 1.23

    numpy.asscalar has been removed from Numpy in release 1.23.

    The function is called in:

    • facets_overview/python/base_generic_feature_statistics_generator.py
    • facets_overview/facets_overview/base_generic_feature_statistics_generator.py

    The guidance in the docs is to use numpy.ndarray.item() instead.

    opened by robmoore 0
  • Why the facets button size is too big to see (again)

    Why the facets button size is too big to see (again)

    I know this is a previous issue that was closed but I'm using the latest and I still have the oversized buttons. if I start a jupyter notebook the facet-dive html will load fine. Clear the output of that cell and re-run it and then the buttons blow up:

    Screen Shot 2021-10-05 at 9 59 45 PM

    opened by rayjennings3rd 2
  • How to save the tool outside the jupyter notebook so that the images appear on the display?

    How to save the tool outside the jupyter notebook so that the images appear on the display?

    Hello,

    I have doubts if it is possible to save the tool outside the jupyter notebook so that the images appear on the display. I can save in html format, but the images do not appear only the colored circles that are standard of the tool. Is it possible to resolve this for an image database? Below is an excerpt from my code that saves the display:

    #Displaythe Dive visualization for this data
    from IPython.core.display import display, HTML
    
    
    sprite_size = 32
    
    # Create Facets template
    HTML_TEMPLATE = """<script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/1.3.3/webcomponents-lite.js"></script>
    <link rel="import" href="https://raw.githubusercontent.com/PAIR-code/facets/1.0.0/facets-dist/facets-jupyter.html">
            <facets-dive sprite-image-width="{sprite_size}" sprite-image-height="{sprite_size}" id="elem" height="600" atlas-url="sprite_atlas.png"></facets-dive>
            <script>
              document.querySelector("#elem").data = {jsonstr};
            </script>"""
    
    html = HTML_TEMPLATE.format(jsonstr=jsonstr, sprite_size=sprite_size)
    
    
    # Display the template
    display(HTML(html))
    
    #save as html
    OUTPUT_PATH = './ISIC_2019_4.html'
    with open(OUTPUT_PATH,'w') as fo:
            fo.write(html)
    

    In general, I'm trying to host an instance of Facets Dive outside of a notebook to shared with other people that wanted to work with tool.

    I'm annexed the examples of display on jupyter and when it saved in html format

    Display on jupyter:

    Jupyter notebook

    Display save in html format:

    save_html

    Why don't the images appear? Has anyone had this problem or could you help me? Thanks :)

    opened by wesnasimone 4
  • ProtoFromDataFrames fails for dataframes with categorical columns

    ProtoFromDataFrames fails for dataframes with categorical columns

    When attempting to create the proto for facets-overview, if any of the columns are categorical, the operation will fail with an attribute error. I would expect it to properly parse the dataframe, treating the category dtype as a string and displaying it in the "Categorical Features" section in the same way.

    Below is example code to produce this error and the traceback:

    from facets_overview.generic_feature_statistics_generator import GenericFeatureStatisticsGenerator  
    import pandas as pd  
    df = pd.DataFrame({'col1': pd.Categorical(['a', 'b', 'c', 'a', 'b', 'c'])})  
    proto = GenericFeatureStatisticsGenerator().ProtoFromDataFrames([{'name': 'test', 'table': df}])
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File ".../facets_overview/base_generic_feature_statistics_generator.py", line 54, in ProtoFromDataFrames
        table_entries[col] = self.NdarrayToEntry(table[col])
      File ".../facets_overview/base_generic_feature_statistics_generator.py", line 119, in NdarrayToEntry
        data_type = self.DtypeToType(x.dtype)
      File ".../facets_overview/base_generic_feature_statistics_generator.py", line 66, in DtypeToType
        if dtype.char in np.typecodes['AllFloat']:
    AttributeError: 'CategoricalDtype' object has no attribute 'char'
    

    This is using facets-overview 1.0.0 and pandas 1.1.4.

    opened by ysayeed 6
Releases(1.0.0)
Owner
PAIR code
Code repositories for projects from the People+AI Research (PAIR) Initiative
PAIR code
Lightspin AWS IAM Vulnerability Scanner

Red-Shadow Lightspin AWS IAM Vulnerability Scanner Description Scan your AWS IAM Configuration for shadow admins in AWS IAM based on misconfigured den

Lightspin 90 Dec 14, 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
Because trello only have payed options to generate a RunUp chart, this solves that!

Trello Runup Chart Generator The basic concept of the project is that Corello is pay-to-use and want to use Trello To-Do/Doing/Done automation with gi

Rômulo Schiavon 1 Dec 21, 2021
Plot, scatter plots and histograms in the terminal using braille dots

Plot, scatter plots and histograms in the terminal using braille dots, with (almost) no dependancies. Plot with color or make complex figures - similar to a very small sibling to matplotlib. Or use t

Tammo Ippen 207 Dec 30, 2022
A minimalistic wrapper around PyOpenGL to save development time

glpy glpy is pyOpenGl wrapper which lets you work with pyOpenGl easily.It is not meant to be a replacement for pyOpenGl but runs on top of pyOpenGl to

Abhinav 9 Apr 02, 2022
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
Cartopy - a cartographic python library with matplotlib support

Cartopy is a Python package designed to make drawing maps for data analysis and visualisation easy. Table of contents Overview Get in touch License an

1.2k Jan 01, 2023
Friday Night Funkin - converts a chart from 4/4 time to 6/8 time, or from regular to swing tempo.

Chart to swing converter As seen in https://twitter.com/i_winxd/status/1462220493558366214 A program written in python that converts a chart from 4/4

5 Dec 23, 2022
Numerical methods for ordinary differential equations: Euler, Improved Euler, Runge-Kutta.

Numerical methods Numerical methods for ordinary differential equations are methods used to find numerical approximations to the solutions of ordinary

Aleksey Korshuk 5 Apr 29, 2022
Quickly and accurately render even the largest data.

Turn even the largest data into images, accurately Build Status Coverage Latest dev release Latest release Docs Support What is it? Datashader is a da

HoloViz 2.9k Dec 28, 2022
Analysis and plotting for motor/prop/ESC characterization, thrust vs RPM and torque vs thrust

esc_test This is a Python package used to plot and analyze data collected for the purpose of characterizing a particular propeller, motor, and ESC con

Alex Spitzer 1 Dec 28, 2021
This repository contains a streaming Dataflow pipeline written in Python with Apache Beam, reading data from PubSub.

Sample streaming Dataflow pipeline written in Python This repository contains a streaming Dataflow pipeline written in Python with Apache Beam, readin

Israel Herraiz 9 Mar 18, 2022
Visual Python is a GUI-based Python code generator, developed on the Jupyter Notebook environment as an extension.

Visual Python is a GUI-based Python code generator, developed on the Jupyter Notebook environment as an extension.

Visual Python 564 Jan 03, 2023
Implementation of SOMs (Self-Organizing Maps) with neighborhood-based map topologies.

py-self-organizing-maps Simple implementation of self-organizing maps (SOMs) A SOM is an unsupervised method for learning a mapping from a discrete ne

Jonas Grebe 6 Nov 22, 2022
Monochromatic colorscheme for matplotlib with opinionated sensible default

Monochromatic colorscheme for matplotlib with opinionated sensible default If you need a simple monochromatic colorscheme for your matplotlib figures,

Aria Ghora Prabono 2 May 06, 2022
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
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
Show Data: Show your dataset in web browser!

Show Data is to generate html tables for large scale image dataset, especially for the dataset in remote server. It provides some useful commond line tools and fully customizeble API reference to gen

Dechao Meng 83 Nov 26, 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
BGraph is a tool designed to generate dependencies graphs from Android.bp soong files.

BGraph BGraph is a tool designed to generate dependencies graphs from Android.bp soong files. Overview BGraph (for Build-Graphs) is a project aimed at

Quarkslab 10 Dec 19, 2022