diff --git a/doc/interactive_sizing_options.ipynb b/doc/interactive_sizing_options.ipynb
new file mode 100644
index 0000000..734a4a7
--- /dev/null
+++ b/doc/interactive_sizing_options.ipynb
@@ -0,0 +1,1592 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "e10bab62",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import datamapplot"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "775cffd6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import requests\n",
+ "import io\n",
+ "\n",
+ "base_url = \"https://github.com/TutteInstitute/datamapplot\"\n",
+ "data_map_file = requests.get(\n",
+ " f\"{base_url}/raw/main/examples/arxiv_ml_data_map.npy\"\n",
+ ")\n",
+ "arxivml_data_map = np.load(io.BytesIO(data_map_file.content))\n",
+ "arxivml_label_layers = []\n",
+ "for layer_num in range(5):\n",
+ " label_file = requests.get(\n",
+ " f\"{base_url}/raw/interactive/examples/arxiv_ml_layer{layer_num}_cluster_labels.npy\"\n",
+ " )\n",
+ " arxivml_label_layers.append(np.load(io.BytesIO(label_file.content), allow_pickle=True))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "f38a1caa",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "plot = datamapplot.create_interactive_plot(\n",
+ " arxivml_data_map,\n",
+ " arxivml_label_layers[0],\n",
+ " arxivml_label_layers[2],\n",
+ " arxivml_label_layers[4],\n",
+ ")\n",
+ "plot"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "78cf0189",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "plot = datamapplot.create_interactive_plot(\n",
+ " arxivml_data_map,\n",
+ " arxivml_label_layers[0],\n",
+ " arxivml_label_layers[2],\n",
+ " arxivml_label_layers[4],\n",
+ " min_fontsize=14,\n",
+ " max_fontsize=14,\n",
+ ")\n",
+ "plot"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "f28bbc94",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "hover_data_file = requests.get(\n",
+ " f\"{base_url}/raw/interactive/examples/arxiv_ml_hover_data.npy\"\n",
+ ")\n",
+ "arxiv_hover_data = np.load(io.BytesIO(hover_data_file.content), allow_pickle=True)\n",
+ "arxiv_marker_size_array = np.asarray([len(x) for x in arxiv_hover_data], dtype=np.float32)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "fdadbbcc",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "plot = datamapplot.create_interactive_plot(\n",
+ " arxivml_data_map,\n",
+ " arxivml_label_layers[0],\n",
+ " arxivml_label_layers[2],\n",
+ " arxivml_label_layers[4],\n",
+ " min_fontsize=14,\n",
+ " max_fontsize=14,\n",
+ " marker_size_array=arxiv_marker_size_array,\n",
+ ")\n",
+ "plot"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "fb120f24",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "plot = datamapplot.create_interactive_plot(\n",
+ " arxivml_data_map,\n",
+ " arxivml_label_layers[0],\n",
+ " arxivml_label_layers[2],\n",
+ " arxivml_label_layers[4],\n",
+ " min_fontsize=14,\n",
+ " max_fontsize=14,\n",
+ " marker_size_array=[len(x) for x in arxiv_hover_data],\n",
+ " point_radius_min_pixels=1,\n",
+ " point_radius_max_pixels=8,\n",
+ ")\n",
+ "plot"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "74e0e3e8",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "