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)
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
A workshop on data visualization in Python with notebooks and exercises for following along.

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

Stefanie Molin 162 Dec 05, 2022
HiPlot makes understanding high dimensional data easy

HiPlot - High dimensional Interactive Plotting HiPlot is a lightweight interactive visualization tool to help AI researchers discover correlations and

Facebook Research 2.4k Jan 04, 2023
Learn Basic to advanced level Data visualisation techniques from this Repository

Data visualisation Hey, You can learn Basic to advanced level Data visualisation techniques from this Repository. Data visualization is the graphic re

Shashank dwivedi 16 Jan 03, 2023
This plugin plots the time you spent on a tag as a histogram.

This plugin plots the time you spent on a tag as a histogram.

Tom Dörr 7 Sep 09, 2022
Calendar heatmaps from Pandas time series data

Note: See MarvinT/calmap for the maintained version of the project. That is also the version that gets published to PyPI and it has received several f

Martijn Vermaat 195 Dec 22, 2022
Drag’n’drop Pivot Tables and Charts for Jupyter/IPython Notebook, care of PivotTable.js

pivottablejs: the Python module Drag’n’drop Pivot Tables and Charts for Jupyter/IPython Notebook, care of PivotTable.js Installation pip install pivot

Nicolas Kruchten 512 Dec 26, 2022
A Graph Learning library for Humans

A Graph Learning library for Humans These novel algorithms include but are not limited to: A graph construction and graph searching class can be found

Richard Tjörnhammar 1 Feb 08, 2022
Jupyter notebook and datasets from the pandas Q&A video series

Python pandas Q&A video series Read about the series, and view all of the videos on one page: Easier data analysis in Python with pandas. Jupyter Note

Kevin Markham 2k Jan 05, 2023
Python script for writing text on github contribution chart.

Github Contribution Drawer Python script for writing text on github contribution chart. Requirements Python 3.X Getting Started Create repository Put

Steven 0 May 27, 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
Automatically Visualize any dataset, any size with a single line of code. Created by Ram Seshadri. Collaborators Welcome. Permission Granted upon Request.

AutoViz Automatically Visualize any dataset, any size with a single line of code. AutoViz performs automatic visualization of any dataset with one lin

AutoViz and Auto_ViML 1k Jan 02, 2023
Customizing Visual Styles in Plotly

Customizing Visual Styles in Plotly Code for a workshop originally developed for an Unconference session during the Outlier Conference hosted by Data

Data Design Dimension 9 Aug 03, 2022
在原神中使用围栏绘图

yuanshen_draw 在原神中使用围栏绘图 文件说明 toLines.py 将一张图片转换为对应的线条集合,视频可以按帧转换。 draw.py 在原神家园里绘制一张线条图。 draw_video.py 在原神家园里绘制视频(自动按帧摆放,截图(win)并回收) cat_to_video.py

14 Oct 08, 2022
Simple and fast histogramming in Python accelerated with OpenMP.

pygram11 Simple and fast histogramming in Python accelerated with OpenMP with help from pybind11. pygram11 provides functions for very fast histogram

Doug Davis 28 Dec 14, 2022
This is a learning tool and exploration app made using the Dash interactive Python framework developed by Plotly

Support Vector Machine (SVM) Explorer This app has been moved here. This repo is likely outdated and will not be updated. This is a learning tool and

Plotly 150 Nov 03, 2022
A central task in drug discovery is searching, screening, and organizing large chemical databases

A central task in drug discovery is searching, screening, and organizing large chemical databases. Here, we implement clustering on molecular similarity. We support multiple methods to provide a inte

NVIDIA Corporation 124 Jan 07, 2023
Data parsing and validation using Python type hints

pydantic Data validation and settings management using Python type hinting. Fast and extensible, pydantic plays nicely with your linters/IDE/brain. De

Samuel Colvin 12.1k Jan 06, 2023
Generating interfaces(CLI, Qt GUI, Dash web app) from a Python function.

oneFace is a Python library for automatically generating multiple interfaces(CLI, GUI, WebGUI) from a callable Python object. oneFace is an easy way t

NaNg 31 Oct 21, 2022
nvitop, an interactive NVIDIA-GPU process viewer, the one-stop solution for GPU process management

An interactive NVIDIA-GPU process viewer, the one-stop solution for GPU process management.

Xuehai Pan 1.3k Jan 02, 2023