Jupyter Widget wrapper for Lineup.js @sgratzl
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
.vscode
examples
js
lineup_widget
.editorconfig
.gitattributes
.gitignore
.pylintrc
LICENSE.txt
MANIFEST.in
README.md
docker-compose.yml
lineup_widget.json
setup.cfg
setup.py

README.md

LineUp.js as Jupyter Widget

License: MIT CircleCI CircleCI

LineUp is an interactive technique designed to create, visualize and explore rankings of items based on a set of heterogeneous attributes. This is a Jupyter Widget wrapper around the JavaScript library LineUp.js. Details about the LineUp visualization technique can be found at http://lineup.caleydo.org.

Installation

  1. install Jupyter Widgets

    pip install ipywidgets
    jupyter nbextension enable --py widgetsnbextension
  2. install library

    pip install lineup_widget
    jupyter nbextension enable --py --sys-prefix lineup_widget
  3. OR directly via repository (requires node and npm to be installed):

    pip install -e git+https://github.com/datavisyn/lineup_widget.git#egg=lineup_widget
    jupyter nbextension enable --py --sys-prefix lineup_widget
  4. Jupyterlab

    jupyter labextension install @jupyter-widgets/jupyterlab-manager
    jupyter labextension install lineup_widget
    jupyter lab

Examples

Launch Binder

import lineup_widget
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

w = lineup_widget.LineUpWidget(df)
w.on_selection_changed(lambda selection: print(selection))
w

simple usage

from __future__ import print_function
from ipywidgets import interact, interactive, interact_manual

def selection_changed(selection):
    return df.iloc[selection]

interact(selection_changed, selection=lineup_widget.LineUpWidget(df));

interact example

Hint:

In case you see scrollbars in each cell it is because of the font the cells are too narrow, you can specify a larger row height using

w = lineup_widget.LineUpWidget(df, options=dict(rowHeight=20))

Release Package

  1. JavaScript NPM

    cd js
    npm install
    npm publish
  2. Python PyPi

    pip install -U twine setuptools
    
    python setup.py clean sdist bdist_wheel
    twine upload dist/*
  3. Git

    git tag v<version>
    git push --follow-tags
  4. update versions edit the version in

    • js/package.json
    • js/lib/version.ts
    • lineup_widget/_version.py

Authors

  • Samuel Gratzl (@sgratzl)