Glue is a python project to link visualizations of scientific datasets across many files.

Overview

Azure Status Coverage Status DOI User mailing list Developer mailing list

Glue

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

Glue demo

Features

  • Interactive, linked statistical graphics of multiple files.
  • Support for many file formats including common image formats (jpg, tiff, png), ascii tables, astronomical image and table formats (fits, vot, ipac), and HDF5. Custom data loaders can also be easily added.
  • Highly scriptable and extendable.

Installation

For installation documentation, visit glueviz.org.

Contributing

If you are interested in contributing to glue, please read our Code of Conduct and Contribution Guidelines.

Support

Please report problems to [email protected], or open an issue.

License

Glue is licensed under the BSD License.

Comments
  • Fix bug when chunking large arrays with a subset defined

    Fix bug when chunking large arrays with a subset defined

    Description

    We were running into a bug for large cubes in Jdaviz, where we couldn't retrieve the collapsed spectrum if the cube was above a certain size (above n_chunk_max in compute_statistic as it turned out). I'm not sure if this is the best fix, but it works to avoid the broadcast error we were encountering on line 1689 where there was an array size mismatch with a RangeSubsetState defined and number of array elements > n_chunk_max.

    opened by rosteen 36
  • Generalize data sources/importers

    Generalize data sources/importers

    In the same way that we can have plug-in exporters, it would be nice to have plug-in imports that can bring up different or additional dialogs. Examples include:

    • An additional dialog for e.g. FITS files which can allow one to select the HDU
    • A dialog instead of the 'open file' which could get data from online sources (e.g. dataverse, Vizier, etc)

    This would open up all kinds of new fun ways to bring data into glue. All these could be developed as plugins of course, and wouldn't clutter up the main code base.

    enhancement 
    opened by astrofrog 31
  • Implement Python 3 compatibility

    Implement Python 3 compatibility

    With these changes, Glue will at least install and launch, but when trying to select a subset I still get the error:

    Traceback (most recent call last):
      File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/backends/backend_qt4.py", line 261, in mouseReleaseEvent
        FigureCanvasBase.button_release_event( self, x, y, button )
      File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/backend_bases.py", line 1808, in button_release_event
        self.callbacks.process(s, event)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/cbook.py", line 528, in process
        proxy(*args, **kwargs)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/matplotlib/cbook.py", line 406, in __call__
        return mtd(*args, **kwargs)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/qt/mouse_mode.py", line 195, in release
        self._finish_roi(event)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/qt/mouse_mode.py", line 156, in _finish_roi
        self._roi_callback(self)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/qt/widgets/scatter_widget.py", line 99, in apply_mode
        return self.apply_roi(mode.roi())
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/qt/decorators.py", line 18, in result
        return func(*args, **kwargs)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/core/application_base.py", line 223, in apply_roi
        self._session.command_stack.do(cmd)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/core/command.py", line 98, in do
        result = cmd.do(self._session)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/core/command.py", line 224, in do
        self.client.apply_roi(self.roi)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/clients/scatter_client.py", line 255, in apply_roi
        mode.update(self._data, subset_state, focus_data=focus)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/core/edit_subset_mode.py", line 67, in update
        self._combine_data(data, new_state, add_if_empty=doadd)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/core/edit_subset_mode.py", line 35, in _combine_data
        data.edit_subset = data.new_subset()
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/core/data.py", line 610, in new_subset
        new_subset = Subset(self, color=color, label=label, **kwargs)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/core/subset.py", line 54, in __init__
        self.label = label  # trigger disambiguation
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/core/subset.py", line 228, in __setattr__
        object.__setattr__(self, attribute, value)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/core/subset.py", line 92, in label
        value = Registry().register(self, value, group=self.data)
      File "/Volumes/Raptor/Library/Python/3.3/lib/python/site-packages/Glue-0.1.0-py3.3.egg/glue/core/registry.py", line 69, in register
        has_obj = obj in reg
    TypeError: unhashable type: 'Subset'
    

    I don't quite understand yet why this would work in Python 2 but not Python 3.

    opened by astrofrog 31
  • Introduce container readers.

    Introduce container readers.

    In part thinking about issue #642 and in dealing with datasets with many FITS extensions, came up with a generic FITS loader.

    Haven't done tests/docs yet, but wanted to throw this out for thoughts and possibly becoming the default for FITS files.

    opened by stscieisenhamer 22
  • Tests do not run using 'python setup.py test'

    Tests do not run using 'python setup.py test'

    Tests run fine using the command

        py.test glue
    

    However, if trying with either

        ./runtests.py
        python setup.py test
    

    one will be greeted with a stack trace similar to the below.

        (glue)[user glue-repo]$ python setup.py test
        running test
        INTERNALERROR> Traceback (most recent call last):
        INTERNALERROR>   File "_pytest.main", line 68, in wrap_session
        INTERNALERROR>     config.pluginmanager.do_configure(config)
        INTERNALERROR>   File "_pytest.core", line 267, in do_configure
        INTERNALERROR>     config.hook.pytest_configure(config=self._config)
        INTERNALERROR>   File "_pytest.core", line 419, in __call__
        INTERNALERROR>     return self._docall(methods, kwargs)
        INTERNALERROR>   File "_pytest.core", line 430, in _docall
        INTERNALERROR>     res = mc.execute()
        INTERNALERROR>   File "_pytest.core", line 348, in execute
        INTERNALERROR>     res = method(**kwargs)
        INTERNALERROR>   File "/Users/eisenham/Documents/ssbdev/play/glue/glue-repo/glue/conftest.py", line 7, in pytest_configure
        INTERNALERROR>     if config.getoption('no_optional_skip'):
        INTERNALERROR> AttributeError: 'Config' object has no attribute 'getoption'
    
    opened by stscieisenhamer 22
  • Reorganize widgets and clients into individual folders?

    Reorganize widgets and clients into individual folders?

    At the moment, code for e.g. the histogram stuff is split into the client (in glue/clients) and the widget (in glue/qt/widgets). Of course, this separation makes sense in case we want to use different GUIs in future, but what I think might be easier to manage is something like this:

    glue/
        viewers/
            histogram/
                client.py
                qt.py
                histogram.ui
            image/
                ...
    

    i.e. to group the different viewers/widgets into individual folders and then inside that have a separation of the general glue client code, the qt code, and we can even add other front-ends in future, e.g. glue/viewers/histogram/web.py.

    In my opinion, this would be a step towards more modularity, but there may be reasons why we might not want to do that. @ChrisBeaumont, what do you think?

    If we agree something like this would be good, I can go ahead and open a PR with the changes.

    opened by astrofrog 21
  • Performance improvements for CompositeArray

    Performance improvements for CompositeArray

    This attempts to speed up CompositeArray by using several tricks:

    • When using colormaps, we don't need to care about layers below the top-most layer that has alpha=1 since it will block everything below - this should speed up viewers with multiple images open.
    • When using colormaps and assuming the colormaps don't have any transparency, we can avoid a bunch of temporary array creations.
    • We make use of out= in the contrast/bias and stretch to avoid more temporary array creation.
    opened by astrofrog 19
  • Error installing glueviz in Linux with Anaconda

    Error installing glueviz in Linux with Anaconda

    I tried the installation command suggested in the documentation: pythonw -m pip install glueviz but the command pythonw is not available (at least directly) in my version of Anaconda in Linux (Debian Jessie). When I try directly with pip install glueviz I got the following error:

    (...)
    copying glue/qt/ui/subset_facet.ui -> build/lib/glue/qt/ui
    
    running install_lib
    
    Traceback (most recent call last):
    
      File "<string>", line 1, in <module>
    
      File "/tmp/pip-build-mp42hW/glueviz/setup.py", line 67, in <module>
    
        package_data={'': ['*.png', '*.ui']}
    
      File "/home/jsm/programs/soft/anaconda/lib/python2.7/distutils/core.py", line 151, in setup
    
        dist.run_commands()
    
      File "/home/jsm/programs/soft/anaconda/lib/python2.7/distutils/dist.py", line 953, in run_commands
    
        self.run_command(cmd)
    
      File "/home/jsm/programs/soft/anaconda/lib/python2.7/distutils/dist.py", line 972, in run_command
    
        cmd_obj.run()
    
      File "/usr/lib/python2.7/dist-packages/setuptools/command/install.py", line 61, in run
    
        return orig.install.run(self)
    
      File "/home/jsm/programs/soft/anaconda/lib/python2.7/distutils/command/install.py", line 575, in run
    
        self.run_command(cmd_name)
    
      File "/home/jsm/programs/soft/anaconda/lib/python2.7/distutils/cmd.py", line 326, in run_command
    
        self.distribution.run_command(command)
    
      File "/home/jsm/programs/soft/anaconda/lib/python2.7/distutils/dist.py", line 971, in run_command
    
        cmd_obj.ensure_finalized()
    
      File "/home/jsm/programs/soft/anaconda/lib/python2.7/distutils/cmd.py", line 109, in ensure_finalized
    
        self.finalize_options()
    
      File "/usr/lib/python2.7/dist-packages/setuptools/command/install_lib.py", line 16, in finalize_options
    
        self.set_undefined_options('install',('install_layout','install_layout'))
    
      File "/home/jsm/programs/soft/anaconda/lib/python2.7/distutils/cmd.py", line 302, in set_undefined_options
    
        getattr(src_cmd_obj, src_option))
    
      File "/home/jsm/programs/soft/anaconda/lib/python2.7/distutils/cmd.py", line 105, in __getattr__
    
        raise AttributeError, attr
    
    AttributeError: install_layout
    
    ----------------------------------------
    Cleaning up...
    

    Any idea of the origin of the error?

    opened by nudomarinero 19
  • More Python 3 fixes

    More Python 3 fixes

    This is a work in progress, and I am aiming to try and get the test suite to pass in Python 3.

    Related issues:

    • https://github.com/scikit-image/scikit-image/issues/1187
    • https://github.com/numpy/numpy/issues/5145
    • https://github.com/astropy/astropy/issues/3013

    (jeez, this is turning out to be quite the bug hunt)

    Python3 
    opened by astrofrog 18
  • Re-factoring Categorical ROI

    Re-factoring Categorical ROI

    As part of the effort @aak65 is doing implementing some Bio-glue features he's going to need a more robust ability to pass around ROIs and subsets that are based on categorical data in a way that's more robust then my approach before ... which was basically convert everything to numbers and hope it all worked out.

    This has all of the backings for the new ROI/Subset but I can't quite figure out where to fold it into the Historgram & Scatter viewers. My ideal situation would be after the user uses a Range-selector on an axis defined by a categorical component it would adjust the returned ROI accordingly. Any ideas on where I would find that logic? @ChrisBeaumont or @astrofrog

    Ready for final review 
    opened by JudoWill 17
  • Release 0.5?

    Release 0.5?

    @ChrisBeaumont - I think it would be good to have a new release since there are already a number of improvements since 0.4 (in particular full Python 3 support). Would you object to having a 0.5 release soon? I'd be happy to help with that - if you would like me to do it, just let me know if there is a specific workflow you have been following to carry out a release.

    By the way, looks like glueviz is now in the main conda package list now :)

    opened by astrofrog 16
  • Save session parameters (not session) to use with other datasets

    Save session parameters (not session) to use with other datasets

    Is your feature request related to a problem? Please describe it: I have a repetitive check that I need to perform on lots of different datasets which means I'm always repeating tasks to produce the same plots. The datasets have the same columns but obviously different data.

    Describe the solution you'd like: I'd like to be able to store the session parameters used to generate these plots so that I can apply them to a new dataset.

    Describe alternatives you've considered: The only alternative so far is re-doing all the plots for each new imported dataset.

    If it is not related to a problem--please describe the feature: Time saving

    Additional context: Add any other context or screenshots about the feature request here.

    enhancement 
    opened by Gabriel-p 0
  • 3D plots not able to show properly

    3D plots not able to show properly

    I installed via pip install glueviz pip install glue-wwt pip install PyQt5

    I tried conda install first but it always gets stuck at solving environment, so I had to use pip. When I try doing 3D scatter, the plot cannot show up properly, but instead shows something like a mirror of the entire glue window: IMG_1946

    By default the vispy version is 0.11.0, and the error messages are WARNING: Could not create NSOpenGLContext with shared context, falling back to unshared context. WARNING:vispy:Could not create NSOpenGLContext with shared context, falling back to unshared context. WARNING: Error drawing visual <glue_vispy_viewers.compat.text.TextVisual object at 0x18d234e50> WARNING:vispy:Error drawing visual <glue_vispy_viewers.compat.text.TextVisual object at 0x18d234e50> WARNING: Traceback (most recent call last): ...... RuntimeError: Shader compilation error in GL_FRAGMENT_SHADER: WARNING: 0:3: extension 'GL_OES_element_index_uint' is not supported WARNING: 0:4: extension 'GL_OES_standard_derivatives' is not supported on line 1482: Invalid call of undeclared identifier 'CatRom' rgb = CatRom(u_font_atlas, u_font_atlas_shape, uv); WARNING:vispy:Traceback (most recent call last): ...... ERROR: Invoking <bound method SceneCanvas.on_draw of <SceneCanvas (PyQt5) at 0x7faa83371d00>> for DrawEvent ERROR:vispy:Invoking <bound method SceneCanvas.on_draw of <SceneCanvas (PyQt5) at 0x7faa83371d00>> for DrawEvent WARNING: Error drawing visual <glue_vispy_viewers.compat.text.TextVisual object at 0x7faa833a6100> WARNING:vispy:Error drawing visual <glue_vispy_viewers.compat.text.TextVisual object at 0x7faa833a6100> ERROR: Invoking <bound method SceneCanvas.on_draw of <SceneCanvas (PyQt5) at 0x7faa83371d00>> repeat 2 ERROR:vispy:Invoking <bound method SceneCanvas.on_draw of <SceneCanvas (PyQt5) at 0x7faa83371d00>> repeat 2 WARNING: Error drawing visual <glue_vispy_viewers.compat.text.TextVisual object at 0x7faa833a6100> WARNING:vispy:Error drawing visual <glue_vispy_viewers.compat.text.TextVisual object at 0x7faa833a6100> WARNING: Error drawing visual <glue_vispy_viewers.compat.text.TextVisual object at 0x7faa833a6100> WARNING:vispy:Error drawing visual <glue_vispy_viewers.compat.text.TextVisual object at 0x7faa833a6100> ERROR: Invoking <bound method SceneCanvas.on_draw of <SceneCanvas (PyQt5) at 0x7faa83371d00>> repeat 4 ERROR:vispy:Invoking <bound method SceneCanvas.on_draw of <SceneCanvas (PyQt5) at 0x7faa83371d00>> repeat 4

    I tried installing vispy 0.9.6 and 0.10.0 instead. Then there's no error message anymore, just warnings, but the 3D plots are still not able to show.

    My python version is 3.10.6 (pip installed everything in /usr/local/lib/python3.10/site-packages), and my system is MacOS Monterey 12.6.

    bug glue.viewers viewer-scatter 
    opened by xiaohanzai 3
  • Dark Mode Improvement

    Dark Mode Improvement

    It would be great if in dark mode the "plot data here" background were black. I always make fake windows to block out that bright light, but inevitably am blinded by it when a window moves.

    enhancement glue.app layout 
    opened by andrew-saydjari 0
  • Pandas DataFrames with type == 'object' cannot be save/restored

    Pandas DataFrames with type == 'object' cannot be save/restored

    Describe the bug Pandas DataFrames created within glue and added to the data_collection manager may have columns of type 'object', which mean they cannot be save/restored by glue (glue.core.state._load_numpy calls np.load()without allow_pickle=True). This is generally not a problem when reading files using the Pandas data_factory (which converts columns), but does, for instance cause problems for datasets retrieved from external sources within a glue session.

    To Reproduce Steps to reproduce the behavior such as:

    1. Create a Pandas DataFrame within glue and add it to the data_collection. For instance, one might use the process described in the documentation
    df1 = DataFrame()
    df1['a'] = [1.2, 3.4, 2.9]
    df1['g'] = ['r', 'q', 's']
    dc['dataframe'] = df1
    
    1. Save Session (this new Data object will be stored as a numpy array within the session file since it did not come from an external file)
    2. Restore Session
    3. Get the following error:

    value error: 'Object arrays cannot be loaded when allow_pickle=False'

    Expected behavior Pandas objects created within glue should not break session files.

    We could simply add allow_pickle to np.load(), but perhaps this has undesired side effects?

    Details:

    • Operating System: MacOS 12.6
    • Python version Python 3.9
    • Glue version 1.6
    • How you installed glue: conda

    Additional context Sample session file attached: pandas_dataframe_session.glu.gz

    bug 
    opened by jfoster17 0
  • Categoricals in scatter

    Categoricals in scatter

    Allow Categorical Variables to be Used in Color and Size Scaling in Scatter viewer

    Description

    This allows scatter plot cmap and size scaling attributes to be a categorical. This does not include a qualitative color-map for categorical attributes (as proposed in #1689) and obviously the size scaling is, in general, not going to be very meaningful, but for a small number of categorical levels it helps makes the points distinct.

    An unresolved problem with this is that it might break glue-jupyter scatter plot because that does not consistently call ensure_numerical on the relevant attributes.

    opened by jfoster17 0
Releases(v1.6.0)
  • v1.6.0(Nov 3, 2022)

    What's Changed

    New Features

    • Implement linking support for all BaseCartesianData subclasses and fix bugs that caused hanging in image viewer by @astrofrog in https://github.com/glue-viz/glue/pull/2328
    • Add the ability to create one-to-one 'join_on_key'-type links to the GUI link editor by @jfoster17 in https://github.com/glue-viz/glue/pull/2313
    • Allow specifying visual attributes when creating subset by @Carifio24 in https://github.com/glue-viz/glue/pull/2333
    • Export color settings in matplotlib viewers by @Carifio24 in https://github.com/glue-viz/glue/pull/2322
    • Add support for PyQt6 and PySide6 (<6.4) to Qt backends by @astrofrog in https://github.com/glue-viz/glue/pull/2318

    Bug Fixes

    • Redraw empty histogram layer by @Carifio24 in https://github.com/glue-viz/glue/pull/2300
    • Apply foreground color to minor ticks by @Carifio24 in https://github.com/glue-viz/glue/pull/2305
    • Don't change labels when using log scale axes by @Carifio24 in https://github.com/glue-viz/glue/pull/2323
    • Fix bugs in BaseCartesianData.get_data for pixel and world component IDs by @astrofrog in https://github.com/glue-viz/glue/pull/2327
    • Don't change labels when using log x axis in histogram viewer by @Carifio24 in https://github.com/glue-viz/glue/pull/2325
    • Fix issue where matplotlib viewers using y log axes were not initialized correctly. by @Carifio24 in https://github.com/glue-viz/glue/pull/2324
    • Force line collection to always respect colormap by @Carifio24 in https://github.com/glue-viz/glue/pull/2299
    • Fix export to Python script to correctly use Coordinates or WCS in reference_data by @dhomeier in https://github.com/glue-viz/glue/pull/2335
    • Add a check for FITS files mistaken as ASCII to astropy_table_read for Python 3.11 compatibility by @dhomeier in https://github.com/glue-viz/glue/pull/2321

    Documentation

    • Removed mention of defunct viz packages in Available plugins by @pllim in https://github.com/glue-viz/glue/pull/2319
    • Add PyQt6 and PySide6 status to glue-deps information by @dhomeier in https://github.com/glue-viz/glue/pull/2338

    Other Changes

    • Require Python>=3.8 and PyQt5/PySide5>=5.14 by @astrofrog in https://github.com/glue-viz/glue/pull/2334
    • Performance improvements for CompositeArray by @astrofrog in https://github.com/glue-viz/glue/pull/2343

    Full Changelog: https://github.com/glue-viz/glue/compare/v1.5.0...v1.6.0

    Source code(tar.gz)
    Source code(zip)
又一个云探针

ServerStatus-Murasame 感谢ServerStatus-Hotaru,又一个云探针诞生了(大雾 本项目在ServerStatus-Hotaru的基础上使用fastapi重构了服务端,部分修改了客户端与前端 项目还在非常原始的阶段,可能存在严重的问题 演示站:https://stat

6 Oct 19, 2021
A high performance implementation of HDBSCAN clustering. http://hdbscan.readthedocs.io/en/latest/

HDBSCAN Now a part of scikit-learn-contrib HDBSCAN - Hierarchical Density-Based Spatial Clustering of Applications with Noise. Performs DBSCAN over va

Leland McInnes 91 Dec 29, 2022
Process dataframe in a easily way.

Popanda Written by Shengxuan Wang at OSU. Used for processing dataframe, especially for machine learning. The name is from "Po" in the movie Kung Fu P

ShawnWang 1 Dec 24, 2021
Generate visualizations of GitHub user and repository statistics using GitHub Actions.

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

Aditya Thakekar 1 Jan 11, 2022
Runtime analysis of code with plotting

Runtime analysis of code with plotting A quick comparison among Python, Cython, and the C languages A Programming Assignment regarding the Programming

Cena Ashoori 2 Dec 24, 2021
Example scripts for generating plots of Bohemian matrices

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

Bohemian Matrices 5 Nov 12, 2022
Squidpy is a tool for the analysis and visualization of spatial molecular data.

Squidpy is a tool for the analysis and visualization of spatial molecular data. It builds on top of scanpy and anndata, from which it inherits modularity and scalability. It provides analysis tools t

Theis Lab 251 Dec 19, 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
WhatsApp Chat Analyzer is a WebApp and it can be used by anyone to analyze their chat. 😄

WhatsApp-Chat-Analyzer You can view the working project here. WhatsApp chat Analyzer is a WebApp where anyone either tech or non-tech person can analy

Prem Chandra Singh 26 Nov 02, 2022
Productivity Tools for Plotly + Pandas

Cufflinks This library binds the power of plotly with the flexibility of pandas for easy plotting. This library is available on https://github.com/san

Jorge Santos 2.7k Dec 30, 2022
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
Function Plotter: a simple application with GUI to plot mathematical functions

Function-Plotter Function Plotter is a simple application with GUI to plot mathe

Mohamed Nabawe 4 Jan 03, 2022
Data Visualizations for the #30DayChartChallenge

The #30DayChartChallenge This repository contains all the charts made for the #30DayChartChallenge during the month of April. This project aims to exp

Isaac Arroyo 7 Sep 20, 2022
These data visualizations were created as homework for my CS40 class. I hope you enjoy!

Data Visualizations These data visualizations were created as homework for my CS40 class. I hope you enjoy! Nobel Laureates by their Country of Birth

9 Sep 02, 2022
:bowtie: Create a dashboard with python!

Installation | Documentation | Gitter Chat | Google Group Bowtie Introduction Bowtie is a library for writing dashboards in Python. No need to know we

Jacques Kvam 753 Dec 22, 2022
A little logger for machine learning research

Blinker Blinker provides a fast dispatching system that allows any number of interested parties to subscribe to events, or "signals". Signal receivers

Reinforcement Learning Working Group 27 Dec 03, 2022
China and India Population and GDP Visualization

China and India Population and GDP Visualization Historical Population Comparison between India and China This graph shows the population data of Indi

Nicolas De Mello 10 Oct 27, 2021
A comprehensive tutorial for plotting focal mechanism

Focal_Mechanisms_Demo A comprehensive tutorial for plotting focal mechanism "beach-balls" using the PyGMT package for Python. (Resulting map of this d

3 Dec 13, 2022
Make scripted visualizations in blender

Scripted visualizations in blender The goal of this project is to script 3D scientific visualizations using blender. To achieve this, we aim to bring

Praneeth Namburi 10 Jun 01, 2022
🗾 Streamlit Component for rendering kepler.gl maps

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

Christoph Rieke 39 Dec 14, 2022