Skip to content

Commit c41bb35

Browse files
Azaya89ahuang11maximlt
authored
Add New Gallery Examples (#1603)
Co-authored-by: Andrew <15331990+ahuang11@users.noreply.github.com> Co-authored-by: maximlt <mliquet@anaconda.com> Co-authored-by: Maxime Liquet <35924738+maximlt@users.noreply.github.com>
1 parent a8c7a58 commit c41bb35

File tree

101 files changed

+4488
-3311
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+4488
-3311
lines changed

.github/workflows/test.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,12 @@ jobs:
133133
- name: Test Geo
134134
run: pixi run -e ${{ matrix.environment }} test-unit-geo-cov
135135
- name: Test Examples
136-
run: pixi run -e ${{ matrix.environment }} test-example
136+
run: |
137+
if [[ "${{ github.event_name }}" == "schedule" ]]; then
138+
HVPLOT_INCLUDE_SLOW_EXAMPLES=1 pixi run -e ${{ matrix.environment }} test-example
139+
else
140+
pixi run -e ${{ matrix.environment }} test-example
141+
fi
137142
- uses: codecov/codecov-action@v4
138143
with:
139144
token: ${{ secrets.CODECOV_TOKEN }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ doc/**/*.rst
108108
doc/**/*.json
109109
# thumbnails are downloaded on the fly
110110
doc/reference/*/thumbnails/
111+
doc/gallery/*/thumbnails/
111112
# this dir contains the whole website and should not be checked in on main
112113
builtdocs/
113114
# mystnb

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
| Binder | [![Binder](https://img.shields.io/badge/launch%20v0.8.1-binder-579aca.svg?logo=data:image/png;base64,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)](https://mybinder.org/v2/gh/holoviz/hvplot/v0.8.1?urlpath=lab/tree) |
1818
| Support | [![Discourse](https://img.shields.io/discourse/status?server=https%3A%2F%2Fdiscourse.holoviz.org)](https://discourse.holoviz.org/c/hvplot/8) |
1919

20-
[Home](https://hvplot.holoviz.org/) | [Installation instructions](#installation-instructions) | [Getting Started Guide](https://hvplot.holoviz.org/tutorials/getting_started.html) | [Reference Guides](https://hvplot.holoviz.org/reference/index.html) | [Examples](#examples) | [License](#license) | [Support](#support--feedback)
20+
[Home](https://hvplot.holoviz.org/) | [Installation instructions](#installation-instructions) | [Getting Started Guide](https://hvplot.holoviz.org/tutorials/getting_started.html) | [Gallery](https://hvplot.holoviz.org/gallery/index.html) | [Reference](https://hvplot.holoviz.org/ref/index.html) | [Examples](#examples) | [License](#license) | [Support](#support--feedback)
2121

2222
## hvPlot provides a familiar, high-level API for visualization
2323

doc/conf.py

Lines changed: 66 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,17 +111,40 @@
111111
'github_project': 'hvplot',
112112
'examples_dir': '.',
113113
'galleries': {
114-
'reference': {
114+
'gallery': {
115115
'title': 'Gallery',
116116
'intro': (
117-
'Find the list of supported libraries on `this page <../ref/data_libraries.html>`_.'
117+
'Explore a curated set of example visualizations using hvPlot '
118+
'with different backends and datasets. For more examples using '
119+
'hvPlot and other HoloViz tools to solve real world problems, '
120+
'see the '
121+
'`HoloViz Examples website <https://examples.holoviz.org>`_.'
118122
),
119123
'sections': [
120-
'tabular',
121-
'geopandas',
122-
'xarray',
124+
{
125+
'path': 'basic-charts',
126+
'title': 'Basic Charts',
127+
},
128+
'categorical',
129+
'multidimensional',
130+
'statistical',
131+
{
132+
'path': 'time-series',
133+
'title': 'Time Series',
134+
},
135+
'geospatial',
136+
'gridded',
137+
{
138+
'path': 'big-data',
139+
'title': 'Big Data',
140+
},
141+
'interactivity',
142+
'annotations',
123143
],
124144
'skip_rst_notebook_directive': True,
145+
'no_image_thumb': True,
146+
'titles_from_files': True,
147+
'card_title_below': True,
125148
}
126149
},
127150
'thumbnail_url': 'https://assets.holoviz.org/hvplot/thumbnails',
@@ -174,9 +197,44 @@
174197
# cell execution timeout in seconds (-1 to ignore, 30 by default)
175198
nb_execution_timeout = 240
176199

177-
if os.getenv('HVPLOT_REFERENCE_GALLERY') not in ('False', 'false', '0'):
200+
if os.getenv('HVPLOT_GALLERY') not in ('False', 'false', '0'):
178201
rediraffe_redirects.update(
179202
{
203+
# When the old reference gallery was removed
204+
'reference/tabular/andrewscurves': 'ref/api/manual/hvplot.plotting.andrews_curves',
205+
'reference/tabular/area': 'ref/api/manual/hvplot.hvPlot.area',
206+
'reference/tabular/bar': 'ref/api/manual/hvplot.hvPlot.bar',
207+
'reference/tabular/barh': 'ref/api/manual/hvplot.hvPlot.barh',
208+
'reference/tabular/bivariate': 'ref/api/manual/hvplot.hvPlot.bivariate',
209+
'reference/tabular/box': 'ref/api/manual/hvplot.hvPlot.box',
210+
'reference/tabular/errorbars': 'ref/api/manual/hvplot.hvPlot.errorbars',
211+
'reference/tabular/heatmap': 'ref/api/manual/hvplot.hvPlot.heatmap',
212+
'reference/tabular/hexbin': 'ref/api/manual/hvplot.hvPlot.hexbin',
213+
'reference/tabular/hist': 'ref/api/manual/hvplot.hvPlot.hist',
214+
'reference/tabular/kde': 'ref/api/manual/hvplot.hvPlot.kde',
215+
'reference/tabular/labels': 'ref/api/manual/hvplot.hvPlot.labels',
216+
'reference/tabular/lagplot': 'ref/api/manual/hvplot.plotting.lag_plot',
217+
'reference/tabular/line': 'ref/api/manual/hvplot.hvPlot.line',
218+
'reference/tabular/ohlc': 'ref/api/manual/hvplot.hvPlot.ohlc',
219+
'reference/tabular/parallelcoordinates': 'ref/api/manual/hvplot.plotting.parallel_coordinates',
220+
'reference/tabular/scatter': 'ref/api/manual/hvplot.hvPlot.scatter',
221+
'reference/tabular/scattermatrix': 'ref/api/manual/hvplot.plotting.scatter_matrix',
222+
'reference/tabular/step': 'ref/api/manual/hvplot.hvPlot.step',
223+
'reference/tabular/table': 'ref/api/manual/hvplot.hvPlot.table',
224+
'reference/tabular/violin': 'ref/api/manual/hvplot.hvPlot.violin',
225+
'reference/geopandas/points': 'ref/api/manual/hvplot.hvPlot.points',
226+
'reference/geopandas/polygons': 'ref/api/manual/hvplot.hvPlot.polygons',
227+
'reference/xarray/bar': 'ref/api/manual/hvplot.hvPlot.bar',
228+
'reference/xarray/contour': 'ref/api/manual/hvplot.hvPlot.contour',
229+
'reference/xarray/contourf': 'ref/api/manual/hvplot.hvPlot.contourf',
230+
'reference/xarray/hist': 'ref/api/manual/hvplot.hvPlot.hist',
231+
'reference/xarray/image': 'ref/api/manual/hvplot.hvPlot.image',
232+
'reference/xarray/kde': 'ref/api/manual/hvplot.hvPlot.kde',
233+
'reference/xarray/line': 'ref/api/manual/hvplot.hvPlot.line',
234+
'reference/xarray/quadmesh': 'ref/api/manual/hvplot.hvPlot.quadmesh',
235+
'reference/xarray/rgb': 'ref/api/manual/hvplot.hvPlot.rgb',
236+
'reference/xarray/vectorfield': 'ref/api/manual/hvplot.hvPlot.vectorfield',
237+
'reference/xarray/violin': 'ref/api/manual/hvplot.hvPlot.violin',
180238
# When the pandas section was renamed tabular:
181239
'reference/pandas/andrewscurves': 'reference/tabular/andrewscurves',
182240
'reference/pandas/area': 'reference/tabular/area',
@@ -204,8 +262,8 @@
204262
else:
205263
if 'nbsite.gallery' in extensions:
206264
extensions.remove('nbsite.gallery')
207-
exclude_patterns.append('reference')
208-
nb_execution_excludepatterns.append('reference/**/*.ipynb')
265+
exclude_patterns.append('gallery')
266+
nb_execution_excludepatterns.append('gallery/**/*.ipynb')
209267

210268
if os.getenv('HVPLOT_EXECUTE_NBS_USER_GUIDE') in ('False', 'false', '0'):
211269
nb_execution_excludepatterns.append('user_guide/**/*.ipynb')

doc/conftest.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import os
12
import sys
23

34
from importlib.util import find_spec
@@ -7,11 +8,19 @@
78
from packaging.version import Version
89
from bokeh.io.webdriver import webdriver_control
910

11+
# Examples that are slow to run and/or download large files.
12+
SLOW_EXAMPLES = [
13+
'gallery/geospatial/datashade_map.ipynb',
14+
]
1015

1116
collect_ignore_glob = [
1217
'user_guide/Streaming.ipynb',
1318
]
1419

20+
# Slow examples are excluded by default.
21+
if os.getenv('HVPLOT_INCLUDE_SLOW_EXAMPLES'):
22+
collect_ignore_glob.extend(SLOW_EXAMPLES)
23+
1524
# On MacOs, Python 3.12 and 3.13, got the following error running this:
1625
# `pos = layout(G)`
1726
# => OSError: Format: "dot" not recognized. No formats found.
@@ -26,12 +35,8 @@
2635
if not find_spec('geoviews'):
2736
collect_ignore_glob += [
2837
'tutorials/getting_started.ipynb',
29-
'reference/geopandas/*.ipynb',
30-
'reference/xarray/contour.ipynb',
31-
'reference/xarray/contourf.ipynb',
32-
'reference/xarray/image.ipynb',
33-
'reference/xarray/quadmesh.ipynb',
34-
'reference/xarray/vectorfield.ipynb',
38+
'gallery/geospatial/*.ipynb',
39+
'gallery/gridded/rgb_satellite_imagery.ipynb',
3540
'user_guide/Explorer.ipynb',
3641
'user_guide/Geographic_Data.ipynb',
3742
'user_guide/Integrations.ipynb',

doc/developer_guide.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,8 @@ Example tests can be run with the following command:
204204
pixi run test-example
205205
```
206206

207+
Slow example tests are excluded by default. Set the environment variable `HVPLOT_INCLUDE_SLOW_EXAMPLES` (e.g. to `1`) to include them.
208+
207209
## Documentation
208210

209211
The documentation can be built with the command:
@@ -215,7 +217,7 @@ pixi run docs-build
215217
As hvPlot uses notebooks for much of the documentation, this takes a little while. You can disable:
216218

217219
- Executing all the notebooks by setting the environment variable `HVPLOT_EXECUTE_NBS` to `false`
218-
- Building the gallery with `HVPLOT_REFERENCE_GALLERY="false"`
220+
- Building the gallery with `HVPLOT_GALLERY="false"`
219221
- Running the user guide notebooks with `HVPLOT_EXECUTE_NBS_USER_GUIDE="false"`
220222
- Running the getting started notebooks with `HVPLOT_EXECUTE_NBS_TUTORIALS="false"`
221223

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"id": "fa9ffb09-e121-4dc3-b4ce-2f49ffc79b8e",
6+
"metadata": {},
7+
"source": [
8+
"# Horizontal Bar Chart with Labels\n",
9+
"\n",
10+
"A horizontal bar chart for comparing category values along the y-axis. This example uses the `penguins` dataset to show average body mass per species. Labels are added as an overlay."
11+
]
12+
},
13+
{
14+
"cell_type": "code",
15+
"execution_count": null,
16+
"id": "bf923874-3780-46e6-b71a-c66cd6edd12e",
17+
"metadata": {},
18+
"outputs": [],
19+
"source": [
20+
"import hvplot.pandas # noqa\n",
21+
"\n",
22+
"df = hvplot.sampledata.penguins('pandas')\n",
23+
"grouped = df.groupby('species', observed=True)['body_mass_g'].mean()\n",
24+
"\n",
25+
"grouped.hvplot.barh(\n",
26+
" x='species',\n",
27+
" y='body_mass_g',\n",
28+
" xlabel='Species',\n",
29+
" ylabel='Body Mass (g)',\n",
30+
" legend=False,\n",
31+
" title='Horizontal Bar Chart (Bokeh)',\n",
32+
" width=400, height=400,\n",
33+
") * grouped.hvplot.labels(\n",
34+
" x='species',\n",
35+
" y='body_mass_g',\n",
36+
" hover=False,\n",
37+
" text=\"{body_mass_g:.0f} g \",\n",
38+
" text_color='white',\n",
39+
" text_align=\"right\",\n",
40+
" width=400, height=400,\n",
41+
")"
42+
]
43+
},
44+
{
45+
"cell_type": "markdown",
46+
"id": "6335a800-d505-4fb6-a235-35c2acb62d9c",
47+
"metadata": {},
48+
"source": [
49+
":::{seealso}\n",
50+
"- [Horizontal Bar Plots reference documentation](../../ref/api/manual/hvplot.hvPlot.barh.ipynb).\n",
51+
"- [Labels reference documentation](../../ref/api/manual/hvplot.hvPlot.labels.ipynb).\n",
52+
":::"
53+
]
54+
}
55+
],
56+
"metadata": {
57+
"language_info": {
58+
"name": "python",
59+
"pygments_lexer": "ipython3"
60+
}
61+
},
62+
"nbformat": 4,
63+
"nbformat_minor": 5
64+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"id": "14b634d4-d40c-45a1-8da6-97141f0ac184",
6+
"metadata": {},
7+
"source": [
8+
"# Simple Area Chart\n",
9+
"\n",
10+
"A filled area chart representing values over a sequence. This example uses simple numeric data to show how area plots work in hvPlot."
11+
]
12+
},
13+
{
14+
"cell_type": "code",
15+
"execution_count": null,
16+
"id": "8b2a9abc-67d3-4af7-a93f-9401da4de96f",
17+
"metadata": {},
18+
"outputs": [],
19+
"source": [
20+
"import pandas as pd\n",
21+
"import hvplot.pandas # noqa\n",
22+
"\n",
23+
"df = pd.DataFrame({\n",
24+
" 'x': range(10),\n",
25+
" 'y': [3, 4, 6, 8, 7, 6, 4, 5, 6, 7]\n",
26+
"})\n",
27+
"\n",
28+
"df.hvplot.area(x='x', y='y', title='Simple Area Chart (Bokeh)')"
29+
]
30+
},
31+
{
32+
"cell_type": "code",
33+
"execution_count": null,
34+
"id": "087c113e-6ad7-49d3-8923-252196fd8884",
35+
"metadata": {},
36+
"outputs": [],
37+
"source": [
38+
"import pandas as pd\n",
39+
"import hvplot.pandas # noqa\n",
40+
"hvplot.extension('matplotlib')\n",
41+
"\n",
42+
"df = pd.DataFrame({\n",
43+
" 'x': range(10),\n",
44+
" 'y': [3, 4, 6, 8, 7, 6, 4, 5, 6, 7]\n",
45+
"})\n",
46+
"\n",
47+
"df.hvplot.area(x='x', y='y', title='Simple Area Chart (Matplotlib)')"
48+
]
49+
},
50+
{
51+
"cell_type": "markdown",
52+
"id": "a0c7b2dc-1a60-4afb-97d6-45f0aa886691",
53+
"metadata": {},
54+
"source": [
55+
":::{seealso}\n",
56+
"- [Area Plots reference documentation](../../ref/api/manual/hvplot.hvPlot.area.ipynb).\n",
57+
":::"
58+
]
59+
}
60+
],
61+
"metadata": {
62+
"language_info": {
63+
"name": "python",
64+
"pygments_lexer": "ipython3"
65+
}
66+
},
67+
"nbformat": 4,
68+
"nbformat_minor": 5
69+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"id": "29a4d191-1160-4a02-af2e-ee238bdcafd5",
6+
"metadata": {},
7+
"source": [
8+
"# Simple Bar Chart\n",
9+
"\n",
10+
"A basic bar chart showing the count of items in each category. This example uses a small pandas DataFrame to demonstrate categorical bar plots."
11+
]
12+
},
13+
{
14+
"cell_type": "code",
15+
"execution_count": null,
16+
"id": "d6d79d69-6e9d-4aee-b4e2-a9f1ef46fb2c",
17+
"metadata": {},
18+
"outputs": [],
19+
"source": [
20+
"import pandas as pd\n",
21+
"import hvplot.pandas # noqa\n",
22+
"\n",
23+
"df = pd.DataFrame({\n",
24+
" 'category': ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C', 'A'],\n",
25+
"})\n",
26+
"counts = df['category'].value_counts().sort_index()\n",
27+
"\n",
28+
"counts.hvplot.bar(title='Simple Bar Chart (Bokeh)', xlabel='Category', ylabel='Count')"
29+
]
30+
},
31+
{
32+
"cell_type": "code",
33+
"execution_count": null,
34+
"id": "04213f6e-6ee4-43f5-ba8d-c3de6ca9d02a",
35+
"metadata": {},
36+
"outputs": [],
37+
"source": [
38+
"import pandas as pd\n",
39+
"import hvplot.pandas # noqa\n",
40+
"hvplot.extension('matplotlib')\n",
41+
"\n",
42+
"df = pd.DataFrame({\n",
43+
" 'category': ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C', 'A'],\n",
44+
"})\n",
45+
"counts = df['category'].value_counts().sort_index()\n",
46+
"\n",
47+
"counts.hvplot.bar(title='Simple Bar Chart (Matplotlib)', xlabel='Category', ylabel='Count')"
48+
]
49+
},
50+
{
51+
"cell_type": "markdown",
52+
"id": "44127e08-ff7d-40d2-8ebf-47a04ab9749a",
53+
"metadata": {},
54+
"source": [
55+
":::{seealso}\n",
56+
"- [Bar Plots reference documentation](../../ref/api/manual/hvplot.hvPlot.bar.ipynb).\n",
57+
"- [Categorical section](../categorical/index) for more complex bar plots.\n",
58+
":::"
59+
]
60+
}
61+
],
62+
"metadata": {
63+
"language_info": {
64+
"name": "python",
65+
"pygments_lexer": "ipython3"
66+
}
67+
},
68+
"nbformat": 4,
69+
"nbformat_minor": 5
70+
}

0 commit comments

Comments
 (0)