https://github.com/ehofesmann/dataset_dashboard
https://github.com/ehofesmann/dataset_dashboard
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/ehofesmann/dataset_dashboard
- Owner: ehofesmann
- Created: 2023-11-28T22:45:11.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-28T23:12:04.000Z (over 2 years ago)
- Last Synced: 2025-02-13T05:48:32.229Z (over 1 year ago)
- Language: Python
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Dataset dashboard
Example dashboard of dataset metrics visualized in a FiftyOne App panel.
This is a very specific example showing how you can build a panel for plots for your own custom workflows and is not meant to be used directly for production workflows.
In this case, the plots expect specific fields to exist on your dataset (like `date_added` and `ground_truth.detections.failures`).

## Installation
This plugin requires `https://github.com/ehofesmann/plotly_panel` installed.
```shell
fiftyone plugins download https://github.com/ehofesmann/plotly_panel
fiftyone plugins download https://github.com/ehofesmann/dataset_dashboard
```
Refer to the [main README](https://github.com/voxel51/fiftyone-plugins) for
more information about managing downloaded plugins and developing plugins
locally.
Also, refer to the [Plotly Panel README](https://github.com/ehofesmann/plotly_panel#adding-your-own-plots) for more information on creating your own plotting panel.
## Run Example
After installing this plugin, you can try the example panel yourself on the `Dashboard Example` dataset.
First, you will need to run the `create_example_dataset.py` method which will create an example dataset named `Dashboard Example` with the necessary data that this example plugin expects. Specifically the `date_added` and `ground_truth.detections.failure` fields.
```shell
cd ~/fiftyone/__plugins__/@ehofesmann/dataset_dashboard
python create_example_dataset.py
```
Then, you can load this dataset and visualize it in the FiftyOne App.
```python
import fiftyone as fo
import fiftyone.zoo as foz
dataset = fo.load_dataset("Dashboard Example")
session = fo.launch_app(dataset)
```
Note: Since this plugin expects very specific fields to exist, it will only be available on datasets named `Dashboard Example`, a constraint applied [here](https://github.com/ehofesmann/dataset_dashboard/blob/aa0d6c15cf8408c2e3fb341f251917e49856a821/__init__.py#L41), [here](https://github.com/ehofesmann/dataset_dashboard/blob/aa0d6c15cf8408c2e3fb341f251917e49856a821/__init__.py#L82), and [here](https://github.com/ehofesmann/dataset_dashboard/blob/aa0d6c15cf8408c2e3fb341f251917e49856a821/__init__.py#L117).
## Interacting with this plugin
On the `Dashboard Example` dataset, you can open the panel by clicking the `Dashboard` button:

All of the data to generate the plots is stored on the `dataset.info` of your dataset so it can load the plots in constant time, no matter the size of your dataset.
As you filter your dataset and look at different views, you can recompute the plot data stored in `dataset.info` and refresh the plots with the refresh button. This operation can be expensive for larger datasets:

Alternatively, for small datasets where the computation to populate the `dataset.info` is fast, you can click the autosync button to automatically refresh the plots as you interact with the dataset:
