silx-kit / h5web

React components for data visualization and exploration
https://h5web.panosc.eu/
MIT License
161 stars 17 forks source link
data-visualization hdf5 react visualization

H5Web: React components for data visualization and exploration

Demos DOI

H5Web is a collection of React components to visualize and explore data. It consists of three packages:

While H5Web was initially built with the HDF5 format in mind, @h5web/lib visualization components are not tied to HDF5 and can be used to visualize data from any source. Also, @h5web/app lets you write your own data provider and can therefore work with any other hierarchical data format.

If you're after a ready-made solution to view local HDF5 files, take a look at myHDF5, at the Visual Studio Code extension or at the JupyterLab extension.

H5Web GIF demo

NPM packages 📚

@h5web/lib

H5Web's component library, which includes the main visualization components (LineVis, HeatmapVis, etc.) as well as some of their lower-level building blocks (VisCanvas, ColorBar, etc.)

The library is documented in a Storybook site accessible at https://h5web-docs.panosc.eu.

Some examples of usage of @h5web/lib:

Multiple curves Heatmap with color bar Gamma vs Power scale
Multiple curves Heatmap with color bar Gamma vs Power scale

@h5web/app

HDF5 viewer component (App) and built-in data providers.

Data providers are components that fetch data from HDF5 back-end solutions and provide this data to the app through React Context. H5Web currently includes three providers, two of which are available in the @h5web/app package:

@h5web/h5wasm

This package includes two additional data providers, H5WasmLocalFileProvider and H5WasmBufferProvider, that can read HDF5 files straight in the browser thanks to the h5wasm library.

Demos

The demo app demonstrates the use of the built-in data providers and visualizations. Several demos are available, one per data provider:

Ecosystem

Check out these projects from the H5Web ecosystem:

Contributing

Want to help improve H5Web? We're always looking for feedback, bug reports and feature requests, so don't hesitate to open an issue or start a discussion.

If you'd like to know more about contributing to the codebase, please check out the CONTRIBUTING guide.