H5Web Visualization Components
H5Web is a collection of React components
to visualize and explore data. It consists of two main packages:
While used in @h5web/app
with HDF5 files, @h5web/lib
visualization
components are not tied to HDF5 and can be used to visualize data from any
source.
For more information, visit the
Storybook documentation site.
Prerequisites
The react
and react-dom
dependencies must be installed in your project. Note
that as of version 10, @h5web/lib
requires React 18.
This package supports TypeScript out of the box without the need to install a
separate @types/
package.
Getting started 🚀
npm install @h5web/lib three @react-three/fiber ndarray
import '@h5web/lib/dist/styles.css';
import React from 'react';
import ndarray from 'ndarray';
import { HeatmapVis, getDomain } from '@h5web/lib';
const values = [
[0, 1, 2],
[3, 4, 5],
];
const flatValues: number[] = values.flat(Infinity);
const dataArray = ndarray(flatValues, [2, 3]);
const domain = getDomain(dataArray);
function MyApp() {
return (
<div style={{ display: 'flex', height: '30rem' }}>
<HeatmapVis dataArray={dataArray} domain={domain} />
</div>
);
}
export default MyApp;
If your bundler supports it (e.g. webpack 5), you may be able to shorten the
stylesheet import path as follows:
import '@h5web/lib/styles.css';
Examples
The following code sandboxes demonstrate how to set up and use @h5web/lib
with
various front-end development stacks:
Browser support
H5Web works out of the box on Firefox 78 ESR.
Support for Firefox 68 ESR is possible by polyfilling the ResizeObserver
API.
One easy way to do this is with polyfill.io:
<head>
<script src="https://polyfill.io/v3/polyfill.min.js?features=default%2CResizeObserver"></script>
</head>
Older versions of Firefox are not supported.