Data Visualization and UI components for interactive data exploration
dvue is a Python package that provides reusable UI components for creating interactive data visualization dashboards using Panel, HoloViews, and GeoViews. It's designed to make it easy to build rich, interactive web applications for exploring time series catalogs represented as tabular data where each row corresponds to a data series (e.g., monitoring stations). If the catalog contains geospatial information (latitude/longitude), dvue can integrate maps for spatial selection.
- 🗺️ Interactive Map Integration: Seamlessly integrate maps with data tables that contain gis information using GeoViews and Cartopy
- 📊 Time Series Visualization: Built-in support for time series data multi-line plotting
- 📋 Rich Table Interface: Interactive tables with sorting, filtering, and pagination using Panel's Tabulator
- 🔗 Bidirectional Selection: Click on map features to select table rows and vice versa
- 🎨 Customizable Styling: Configure colors, markers, and plot options
- 📥 Data Export: Download data and catalogs as CSV files
- 🔗 Permalink Support: Generate shareable links to specific views
- 🎯 Fullscreen Mode: Expand visualizations to fullscreen for detailed analysis
pip install dvuegit clone https://github.com/CADWRDeltaModeling/dvue.git
cd dvue
pip install -e .For development:
pip install dvue[dev]The easiest way to get started is to explore the working examples in the examples/ directory:
A simple example showing time series visualization without geographic components:
panel serve examples/ex_basic_tsdataui.py --showSee examples/ex_basic_tsdataui.py for the complete implementation. This example demonstrates:
- Creating a data catalog with station information
- Generating synthetic time series data
- Implementing a custom
TimeSeriesDataUIManager - Interactive table selection and plotting
A complete example with geographic features and interactive map:
panel serve examples/ex_tsdataui.py --showSee examples/ex_tsdataui.py for the complete implementation. This example shows:
- GeoDataFrame integration with coordinates
- Interactive map with station locations
- Advanced time series plotting with multiple variables
- Bidirectional selection between map and table
Base class for creating custom data visualization UIs. Provides:
- Interactive table with selection support
- Action buttons (Plot, Download, Permalink)
- Map integration for geospatial data
- Progress indicators
- Customizable widgets
Specialized manager for time series data with features like:
- Multi-station plotting with customizable colors and line styles
- Date range selection
- Data filtering (e.g., Lanczos filter)
- Aggregation options (daily, monthly, yearly averages)
- Overlay capabilities for comparing multiple datasets
- Interactive catalog table with row selection
- Dynamic plot generation based on selections
Pre-built action handlers:
PlotAction: Generate plots from selected dataDownloadDataAction: Export selected data to CSVDownloadDataCatalogAction: Export full catalog to CSVPermalinkAction: Create shareable URLs
Component for adding fullscreen capability to any Panel object.
- pandas: Data manipulation
- geopandas: Geospatial data support
- panel: Interactive dashboards
- holoviews: Declarative visualization
- hvplot: High-level plotting API
- geoviews: Geographic plotting
- bokeh: Interactive visualization backend
- param: Parameterized objects
- cartopy: Cartographic projections
- colorcet: Perceptually uniform colormaps
git clone https://github.com/CADWRDeltaModeling/dvue.git
cd dvue
pip install -e ".[dev]"pytestblack .
isort .
flake8 .The examples/ directory contains complete working examples:
-
ex_basic_tsdataui.py- Basic time series visualization without geographic features- Simple data catalog with stations
- Synthetic time series generation
- Interactive table and plotting
- Good starting point for learning the framework
-
ex_tsdataui.py- Advanced example with full features- GeoDataFrame integration
- Interactive map with station locations
- Multiple variables and intervals
- Bidirectional map/table selection
- Complete implementation reference
Run any example with:
panel serve examples/<example_name>.py --showMIT License - see LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
California Department of Water Resources - Delta Modeling Section
This package was originally part of the pydelmod package and has been extracted into a standalone library for broader use.