Skip to content
  • Sebastian Urchs's avatar
    Add label properties app (#518) · 36ecd967
    Sebastian Urchs authored
    * copied object-properties app from canvas-portal
    - copied [object-properties](https://github.com/plotly/canvas-portal/blob/master/apps/object-properties/app.py) app from canvas-portal
    - changed dash_table calls to work with updated API
    - used px.imshow to visualize the label data
    
    * fix None-type inputs before first interaction
    - if callback inputs were not triggered by user interaction (i.e. when the app is just loaded), just return default values
    - removed the suppression of callback exceptions
    
    * dash-bootstrap-components for layout
    - added dbc to requirements.txt
    - added dbc stylesheet to app
    - remove old stylesheets that are no longer needed
    - moved app and content definition to the top of the file
    - refactored `data` to `table` to avoid shadowed variable name from `highlight_filter` scope and for clarity
    - broke layout into components and fit in dbc structure with annotations
    - added plotly logo
    - added a README.md file
    
    * callback and region properties
    - use new skimage region property computation function to construct data-table
    - prevent call to `highlight_row` and `highlight_filter` callbacks at app start.
    
    * informative hover
    - pass data-table to image function
    - match custom hover info with the currently displayed data
    - also remove margins around figure
    
    * removed label array cache and callback
    - more explicit numpy datatype checking for the datatable columns
    - added 1px margins (l/r) around .row elements to have datatable display fully
    - added list of unique labels as cache
    - removed label array Store and update from callback
    - replaced functionality with list of currently visible labels
    - some label related refactoring for clarity
    
    * Performance improvement:
    - converted label overlay to png using datashader
    - added datashader to requirements.txt
    - additional hidden scatter overlay for hoverinfo
    - adjusted highlight_row callback to work with the scatter overlay
    
    * CircleCI and better hover
    - removed hoverinfo for background image
    - made the content of the hover dependent on the selected columns in the datatable
    - remove current label cache. Is not necessary because relevant information is available from table data
    - fixed bug where contour was drawn based on row index rather than label.
    - updated requirements.txt to pin CircleCI compatible versions (thanks @jonmmease)
    - removed typecheck in image_with_contour since we supply the PIL objects
    
    * Colormap
    - dropdown to control what the color overlay is based on
    - css change to give Cards margins on top
    
    * Simplify overlay
    - scatter trace is now opaque and gets colored based on the selected value. px.imshow color overlay is removed
    - replaced datashader with matplotlib cmap call
    - removed datashader and dependencies from requirements.txt
    - trimmed requirements.txt to minimal requirements according to pipdeptree
    - changed figure template to "simple_white" to hide the added margins, made axes invisible
    - added initial value to dropdown menu that prevented the region contour from drawing correctly on app start (or before a dropdown value was explicitly set by the user)
    - increased the line thickness of the region contour to stand out more against the colored scatter trace
    
    * usability improvements
    - added new modal and screenshot / gif
    - added warning popup if colorscale is deselected (breaks things)
    - pointed github button to correct repo
    - added tooltips to datatable to better explain column selection
    - annotated the image generator function
    - cleaned up the imports
    36ecd967
This project manages its dependencies using pip. Learn more