hvplot 0.9.0rc2__tar.gz → 0.9.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hvplot-0.9.0rc2/hvplot.egg-info → hvplot-0.9.1}/PKG-INFO +195 -5
- hvplot-0.9.1/examples/conftest.py +1 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/getting_started/explorer.ipynb +1 -1
- {hvplot-0.9.0rc2/hvplot → hvplot-0.9.1}/examples/user_guide/Explorer.ipynb +1 -1
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Geographic_Data.ipynb +2 -2
- {hvplot-0.9.0rc2/hvplot → hvplot-0.9.1}/examples/user_guide/Interactive.ipynb +1 -1
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Plotting.ipynb +2 -2
- {hvplot-0.9.0rc2/hvplot → hvplot-0.9.1}/examples/user_guide/Plotting_with_Matplotlib.ipynb +5 -5
- {hvplot-0.9.0rc2/hvplot → hvplot-0.9.1}/examples/user_guide/Plotting_with_Plotly.ipynb +2 -2
- hvplot-0.9.1/hvplot/.version +1 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/converter.py +9 -5
- hvplot-0.9.1/hvplot/examples/conftest.py +1 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/getting_started/explorer.ipynb +1 -1
- {hvplot-0.9.0rc2 → hvplot-0.9.1/hvplot}/examples/user_guide/Explorer.ipynb +1 -1
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Geographic_Data.ipynb +2 -2
- {hvplot-0.9.0rc2 → hvplot-0.9.1/hvplot}/examples/user_guide/Interactive.ipynb +1 -1
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Plotting.ipynb +2 -2
- {hvplot-0.9.0rc2 → hvplot-0.9.1/hvplot}/examples/user_guide/Plotting_with_Matplotlib.ipynb +5 -5
- {hvplot-0.9.0rc2 → hvplot-0.9.1/hvplot}/examples/user_guide/Plotting_with_Plotly.ipynb +2 -2
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/interactive.py +1 -1
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/plotting/__init__.py +4 -1
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/plotting/core.py +42 -0
- hvplot-0.9.1/hvplot/polars.py +20 -0
- hvplot-0.9.1/hvplot/tests/plotting/testohlc.py +31 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testoperations.py +10 -1
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testplotting.py +13 -3
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testui.py +31 -11
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/ui.py +121 -53
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/util.py +6 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/utilities.py +8 -5
- {hvplot-0.9.0rc2 → hvplot-0.9.1/hvplot.egg-info}/PKG-INFO +195 -5
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot.egg-info/SOURCES.txt +1 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot.egg-info/requires.txt +3 -3
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/setup.py +3 -2
- hvplot-0.9.0rc2/examples/conftest.py +0 -14
- hvplot-0.9.0rc2/hvplot/.version +0 -1
- hvplot-0.9.0rc2/hvplot/examples/conftest.py +0 -14
- hvplot-0.9.0rc2/hvplot/polars.py +0 -64
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/LICENSE +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/MANIFEST.in +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/README.md +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/assets/console.png +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/assets/console_server.gif +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/assets/diagram.png +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/assets/diagram.svg +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/assets/hvplot-wm.png +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/assets/streamz_demo.gif +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/data/crime.csv +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/datasets.yaml +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/getting_started/hvplot.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/getting_started/interactive.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/geopandas/points.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/geopandas/polygons.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/andrewscurves.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/area.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/bar.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/barh.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/bivariate.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/box.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/errorbars.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/heatmap.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/hexbin.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/hist.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/kde.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/labels.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/lagplot.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/line.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/ohlc.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/parallelcoordinates.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/scatter.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/scattermatrix.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/step.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/table.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/pandas/violin.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/xarray/bar.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/xarray/contour.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/xarray/contourf.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/xarray/hist.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/xarray/image.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/xarray/kde.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/xarray/line.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/xarray/quadmesh.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/xarray/rgb.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/xarray/vectorfield.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/reference/xarray/violin.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Customization.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Gridded_Data.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Integrations.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Introduction.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/NetworkX.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Pandas_API.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Plotting_Extensions.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Statistical_Plots.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Streaming.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Subplots.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Timeseries_Data.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Viewing.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/Widgets.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/examples/user_guide/images/simple.svg +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/__init__.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/backend_transforms.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/cudf.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/dask.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/assets/console.png +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/assets/console_server.gif +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/assets/diagram.png +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/assets/diagram.svg +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/assets/hvplot-wm.png +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/assets/streamz_demo.gif +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/data/crime.csv +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/datasets.yaml +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/getting_started/hvplot.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/getting_started/interactive.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/geopandas/points.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/geopandas/polygons.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/andrewscurves.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/area.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/bar.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/barh.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/bivariate.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/box.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/errorbars.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/heatmap.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/hexbin.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/hist.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/kde.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/labels.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/lagplot.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/line.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/ohlc.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/parallelcoordinates.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/scatter.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/scattermatrix.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/step.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/table.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/pandas/violin.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/xarray/bar.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/xarray/contour.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/xarray/contourf.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/xarray/hist.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/xarray/image.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/xarray/kde.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/xarray/line.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/xarray/quadmesh.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/xarray/rgb.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/xarray/vectorfield.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/reference/xarray/violin.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Customization.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Gridded_Data.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Integrations.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Introduction.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/NetworkX.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Pandas_API.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Plotting_Extensions.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Statistical_Plots.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Streaming.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Subplots.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Timeseries_Data.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Viewing.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/Widgets.ipynb +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/examples/user_guide/images/simple.svg +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/fugue.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/ibis.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/intake.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/networkx.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/pandas.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/plotting/andrews_curves.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/plotting/lag_plot.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/plotting/parallel_coordinates.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/plotting/scatter_matrix.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/sample_data.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/streamz.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/__init__.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/conftest.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/plotting/__init__.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/plotting/testcore.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/plotting/testscattermatrix.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/test_links.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testbackend_transforms.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testcharts.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testfugue.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testgeo.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testgeowithoutgv.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testgridplots.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testhelp.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testibis.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testinteractive.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testnetworkx.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testoptions.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testoverrides.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testpanel.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testpatch.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/teststreaming.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testtransforms.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/tests/testutil.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot/xarray.py +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot.egg-info/dependency_links.txt +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot.egg-info/entry_points.txt +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/hvplot.egg-info/top_level.txt +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/pyproject.toml +0 -0
- {hvplot-0.9.0rc2 → hvplot-0.9.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: hvplot
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.1
|
|
4
4
|
Summary: A high-level plotting API for the PyData ecosystem built on HoloViews.
|
|
5
5
|
Home-page: https://hvplot.holoviz.org
|
|
6
6
|
Author: Philipp Rudiger
|
|
@@ -17,6 +17,7 @@ Classifier: Programming Language :: Python :: 3.8
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.9
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
21
|
Classifier: Operating System :: OS Independent
|
|
21
22
|
Classifier: Intended Audience :: Science/Research
|
|
22
23
|
Classifier: Intended Audience :: Developers
|
|
@@ -25,15 +26,204 @@ Classifier: Topic :: Scientific/Engineering
|
|
|
25
26
|
Classifier: Topic :: Software Development :: Libraries
|
|
26
27
|
Requires-Python: >=3.8
|
|
27
28
|
Description-Content-Type: text/markdown
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
License-File: LICENSE
|
|
30
|
+
Requires-Dist: bokeh>=1.0.0
|
|
31
|
+
Requires-Dist: colorcet>=2
|
|
32
|
+
Requires-Dist: holoviews>=1.11.0
|
|
33
|
+
Requires-Dist: pandas
|
|
34
|
+
Requires-Dist: numpy>=1.15
|
|
35
|
+
Requires-Dist: packaging
|
|
36
|
+
Requires-Dist: panel>=0.11.0
|
|
37
|
+
Requires-Dist: param<3.0,>=1.12.0
|
|
38
|
+
Provides-Extra: tests-nb
|
|
39
|
+
Requires-Dist: pytest-xdist; extra == "tests-nb"
|
|
40
|
+
Requires-Dist: nbval; extra == "tests-nb"
|
|
41
|
+
Provides-Extra: tests-core
|
|
42
|
+
Requires-Dist: codecov; extra == "tests-core"
|
|
43
|
+
Requires-Dist: flake8; extra == "tests-core"
|
|
44
|
+
Requires-Dist: pre-commit; extra == "tests-core"
|
|
45
|
+
Requires-Dist: parameterized; extra == "tests-core"
|
|
46
|
+
Requires-Dist: pytest; extra == "tests-core"
|
|
47
|
+
Requires-Dist: pytest-cov; extra == "tests-core"
|
|
48
|
+
Requires-Dist: matplotlib; extra == "tests-core"
|
|
49
|
+
Requires-Dist: plotly; extra == "tests-core"
|
|
50
|
+
Requires-Dist: xarray; extra == "tests-core"
|
|
51
|
+
Requires-Dist: pooch; extra == "tests-core"
|
|
52
|
+
Requires-Dist: scipy; extra == "tests-core"
|
|
53
|
+
Requires-Dist: ipywidgets; extra == "tests-core"
|
|
54
|
+
Requires-Dist: dask; extra == "tests-core"
|
|
30
55
|
Provides-Extra: tests
|
|
56
|
+
Requires-Dist: codecov; extra == "tests"
|
|
57
|
+
Requires-Dist: flake8; extra == "tests"
|
|
58
|
+
Requires-Dist: pre-commit; extra == "tests"
|
|
59
|
+
Requires-Dist: parameterized; extra == "tests"
|
|
60
|
+
Requires-Dist: pytest; extra == "tests"
|
|
61
|
+
Requires-Dist: pytest-cov; extra == "tests"
|
|
62
|
+
Requires-Dist: matplotlib; extra == "tests"
|
|
63
|
+
Requires-Dist: plotly; extra == "tests"
|
|
64
|
+
Requires-Dist: xarray; extra == "tests"
|
|
65
|
+
Requires-Dist: pooch; extra == "tests"
|
|
66
|
+
Requires-Dist: scipy; extra == "tests"
|
|
67
|
+
Requires-Dist: ipywidgets; extra == "tests"
|
|
68
|
+
Requires-Dist: dask; extra == "tests"
|
|
69
|
+
Requires-Dist: polars; extra == "tests"
|
|
70
|
+
Requires-Dist: fugue; extra == "tests"
|
|
71
|
+
Requires-Dist: ibis-framework; extra == "tests"
|
|
31
72
|
Provides-Extra: examples
|
|
32
|
-
|
|
73
|
+
Requires-Dist: geoviews>=1.9.0; extra == "examples"
|
|
74
|
+
Requires-Dist: geopandas; extra == "examples"
|
|
75
|
+
Requires-Dist: xarray>=0.18.2; extra == "examples"
|
|
76
|
+
Requires-Dist: networkx>=2.6.3; extra == "examples"
|
|
77
|
+
Requires-Dist: streamz>=0.3.0; extra == "examples"
|
|
78
|
+
Requires-Dist: intake>=0.6.5; extra == "examples"
|
|
79
|
+
Requires-Dist: intake-parquet>=0.2.3; extra == "examples"
|
|
80
|
+
Requires-Dist: intake-xarray>=0.5.0; extra == "examples"
|
|
81
|
+
Requires-Dist: dask>=2021.3.0; extra == "examples"
|
|
82
|
+
Requires-Dist: notebook>=5.4; extra == "examples"
|
|
83
|
+
Requires-Dist: rasterio; extra == "examples"
|
|
84
|
+
Requires-Dist: cartopy; extra == "examples"
|
|
85
|
+
Requires-Dist: pyproj; extra == "examples"
|
|
86
|
+
Requires-Dist: s3fs>=2022.1.0; extra == "examples"
|
|
87
|
+
Requires-Dist: scipy>=1.5.3; extra == "examples"
|
|
88
|
+
Requires-Dist: pillow>=8.2.0; extra == "examples"
|
|
89
|
+
Requires-Dist: selenium>=3.141.0; extra == "examples"
|
|
90
|
+
Requires-Dist: scikit-image>=0.17.2; extra == "examples"
|
|
91
|
+
Requires-Dist: python-snappy>=0.6.0; extra == "examples"
|
|
92
|
+
Requires-Dist: pooch>=1.6.0; extra == "examples"
|
|
93
|
+
Requires-Dist: fiona; extra == "examples"
|
|
94
|
+
Requires-Dist: rioxarray; extra == "examples"
|
|
95
|
+
Requires-Dist: matplotlib; extra == "examples"
|
|
96
|
+
Requires-Dist: plotly; extra == "examples"
|
|
97
|
+
Requires-Dist: pygraphviz; extra == "examples"
|
|
98
|
+
Requires-Dist: ipywidgets; extra == "examples"
|
|
99
|
+
Requires-Dist: numba>=0.51.0; extra == "examples"
|
|
100
|
+
Requires-Dist: datashader>=0.6.5; extra == "examples"
|
|
101
|
+
Requires-Dist: spatialpandas>=0.4.3; extra == "examples"
|
|
102
|
+
Requires-Dist: polars; extra == "examples"
|
|
103
|
+
Requires-Dist: fugue; extra == "examples"
|
|
104
|
+
Requires-Dist: ibis-framework; extra == "examples"
|
|
105
|
+
Provides-Extra: examples-tests
|
|
106
|
+
Requires-Dist: geoviews>=1.9.0; extra == "examples-tests"
|
|
107
|
+
Requires-Dist: geopandas; extra == "examples-tests"
|
|
108
|
+
Requires-Dist: xarray>=0.18.2; extra == "examples-tests"
|
|
109
|
+
Requires-Dist: networkx>=2.6.3; extra == "examples-tests"
|
|
110
|
+
Requires-Dist: streamz>=0.3.0; extra == "examples-tests"
|
|
111
|
+
Requires-Dist: intake>=0.6.5; extra == "examples-tests"
|
|
112
|
+
Requires-Dist: intake-parquet>=0.2.3; extra == "examples-tests"
|
|
113
|
+
Requires-Dist: intake-xarray>=0.5.0; extra == "examples-tests"
|
|
114
|
+
Requires-Dist: dask>=2021.3.0; extra == "examples-tests"
|
|
115
|
+
Requires-Dist: notebook>=5.4; extra == "examples-tests"
|
|
116
|
+
Requires-Dist: rasterio; extra == "examples-tests"
|
|
117
|
+
Requires-Dist: cartopy; extra == "examples-tests"
|
|
118
|
+
Requires-Dist: pyproj; extra == "examples-tests"
|
|
119
|
+
Requires-Dist: s3fs>=2022.1.0; extra == "examples-tests"
|
|
120
|
+
Requires-Dist: scipy>=1.5.3; extra == "examples-tests"
|
|
121
|
+
Requires-Dist: pillow>=8.2.0; extra == "examples-tests"
|
|
122
|
+
Requires-Dist: selenium>=3.141.0; extra == "examples-tests"
|
|
123
|
+
Requires-Dist: scikit-image>=0.17.2; extra == "examples-tests"
|
|
124
|
+
Requires-Dist: python-snappy>=0.6.0; extra == "examples-tests"
|
|
125
|
+
Requires-Dist: pooch>=1.6.0; extra == "examples-tests"
|
|
126
|
+
Requires-Dist: fiona; extra == "examples-tests"
|
|
127
|
+
Requires-Dist: rioxarray; extra == "examples-tests"
|
|
128
|
+
Requires-Dist: matplotlib; extra == "examples-tests"
|
|
129
|
+
Requires-Dist: plotly; extra == "examples-tests"
|
|
130
|
+
Requires-Dist: pygraphviz; extra == "examples-tests"
|
|
131
|
+
Requires-Dist: ipywidgets; extra == "examples-tests"
|
|
132
|
+
Requires-Dist: numba>=0.51.0; extra == "examples-tests"
|
|
133
|
+
Requires-Dist: datashader>=0.6.5; extra == "examples-tests"
|
|
134
|
+
Requires-Dist: spatialpandas>=0.4.3; extra == "examples-tests"
|
|
135
|
+
Requires-Dist: polars; extra == "examples-tests"
|
|
136
|
+
Requires-Dist: fugue; extra == "examples-tests"
|
|
137
|
+
Requires-Dist: ibis-framework; extra == "examples-tests"
|
|
138
|
+
Requires-Dist: pytest-xdist; extra == "examples-tests"
|
|
139
|
+
Requires-Dist: nbval; extra == "examples-tests"
|
|
33
140
|
Provides-Extra: doc
|
|
141
|
+
Requires-Dist: geoviews>=1.9.0; extra == "doc"
|
|
142
|
+
Requires-Dist: geopandas; extra == "doc"
|
|
143
|
+
Requires-Dist: xarray>=0.18.2; extra == "doc"
|
|
144
|
+
Requires-Dist: networkx>=2.6.3; extra == "doc"
|
|
145
|
+
Requires-Dist: streamz>=0.3.0; extra == "doc"
|
|
146
|
+
Requires-Dist: intake>=0.6.5; extra == "doc"
|
|
147
|
+
Requires-Dist: intake-parquet>=0.2.3; extra == "doc"
|
|
148
|
+
Requires-Dist: intake-xarray>=0.5.0; extra == "doc"
|
|
149
|
+
Requires-Dist: dask>=2021.3.0; extra == "doc"
|
|
150
|
+
Requires-Dist: notebook>=5.4; extra == "doc"
|
|
151
|
+
Requires-Dist: rasterio; extra == "doc"
|
|
152
|
+
Requires-Dist: cartopy; extra == "doc"
|
|
153
|
+
Requires-Dist: pyproj; extra == "doc"
|
|
154
|
+
Requires-Dist: s3fs>=2022.1.0; extra == "doc"
|
|
155
|
+
Requires-Dist: scipy>=1.5.3; extra == "doc"
|
|
156
|
+
Requires-Dist: pillow>=8.2.0; extra == "doc"
|
|
157
|
+
Requires-Dist: selenium>=3.141.0; extra == "doc"
|
|
158
|
+
Requires-Dist: scikit-image>=0.17.2; extra == "doc"
|
|
159
|
+
Requires-Dist: python-snappy>=0.6.0; extra == "doc"
|
|
160
|
+
Requires-Dist: pooch>=1.6.0; extra == "doc"
|
|
161
|
+
Requires-Dist: fiona; extra == "doc"
|
|
162
|
+
Requires-Dist: rioxarray; extra == "doc"
|
|
163
|
+
Requires-Dist: matplotlib; extra == "doc"
|
|
164
|
+
Requires-Dist: plotly; extra == "doc"
|
|
165
|
+
Requires-Dist: pygraphviz; extra == "doc"
|
|
166
|
+
Requires-Dist: ipywidgets; extra == "doc"
|
|
167
|
+
Requires-Dist: numba>=0.51.0; extra == "doc"
|
|
168
|
+
Requires-Dist: datashader>=0.6.5; extra == "doc"
|
|
169
|
+
Requires-Dist: spatialpandas>=0.4.3; extra == "doc"
|
|
170
|
+
Requires-Dist: polars; extra == "doc"
|
|
171
|
+
Requires-Dist: fugue; extra == "doc"
|
|
172
|
+
Requires-Dist: ibis-framework; extra == "doc"
|
|
173
|
+
Requires-Dist: nbsite>=0.8.4; extra == "doc"
|
|
34
174
|
Provides-Extra: build
|
|
175
|
+
Requires-Dist: param>=1.7.0; extra == "build"
|
|
176
|
+
Requires-Dist: pyct>=0.4.4; extra == "build"
|
|
177
|
+
Requires-Dist: setuptools>=30.3.0; extra == "build"
|
|
35
178
|
Provides-Extra: all
|
|
36
|
-
|
|
179
|
+
Requires-Dist: cartopy; extra == "all"
|
|
180
|
+
Requires-Dist: codecov; extra == "all"
|
|
181
|
+
Requires-Dist: dask; extra == "all"
|
|
182
|
+
Requires-Dist: dask>=2021.3.0; extra == "all"
|
|
183
|
+
Requires-Dist: datashader>=0.6.5; extra == "all"
|
|
184
|
+
Requires-Dist: fiona; extra == "all"
|
|
185
|
+
Requires-Dist: flake8; extra == "all"
|
|
186
|
+
Requires-Dist: fugue; extra == "all"
|
|
187
|
+
Requires-Dist: geopandas; extra == "all"
|
|
188
|
+
Requires-Dist: geoviews>=1.9.0; extra == "all"
|
|
189
|
+
Requires-Dist: ibis-framework; extra == "all"
|
|
190
|
+
Requires-Dist: intake>=0.6.5; extra == "all"
|
|
191
|
+
Requires-Dist: intake-parquet>=0.2.3; extra == "all"
|
|
192
|
+
Requires-Dist: intake-xarray>=0.5.0; extra == "all"
|
|
193
|
+
Requires-Dist: ipywidgets; extra == "all"
|
|
194
|
+
Requires-Dist: matplotlib; extra == "all"
|
|
195
|
+
Requires-Dist: nbsite>=0.8.4; extra == "all"
|
|
196
|
+
Requires-Dist: nbval; extra == "all"
|
|
197
|
+
Requires-Dist: networkx>=2.6.3; extra == "all"
|
|
198
|
+
Requires-Dist: notebook>=5.4; extra == "all"
|
|
199
|
+
Requires-Dist: numba>=0.51.0; extra == "all"
|
|
200
|
+
Requires-Dist: param>=1.7.0; extra == "all"
|
|
201
|
+
Requires-Dist: parameterized; extra == "all"
|
|
202
|
+
Requires-Dist: pillow>=8.2.0; extra == "all"
|
|
203
|
+
Requires-Dist: plotly; extra == "all"
|
|
204
|
+
Requires-Dist: polars; extra == "all"
|
|
205
|
+
Requires-Dist: pooch; extra == "all"
|
|
206
|
+
Requires-Dist: pooch>=1.6.0; extra == "all"
|
|
207
|
+
Requires-Dist: pre-commit; extra == "all"
|
|
208
|
+
Requires-Dist: pyct>=0.4.4; extra == "all"
|
|
209
|
+
Requires-Dist: pygraphviz; extra == "all"
|
|
210
|
+
Requires-Dist: pyproj; extra == "all"
|
|
211
|
+
Requires-Dist: pytest; extra == "all"
|
|
212
|
+
Requires-Dist: pytest-cov; extra == "all"
|
|
213
|
+
Requires-Dist: pytest-xdist; extra == "all"
|
|
214
|
+
Requires-Dist: python-snappy>=0.6.0; extra == "all"
|
|
215
|
+
Requires-Dist: rasterio; extra == "all"
|
|
216
|
+
Requires-Dist: rioxarray; extra == "all"
|
|
217
|
+
Requires-Dist: s3fs>=2022.1.0; extra == "all"
|
|
218
|
+
Requires-Dist: scikit-image>=0.17.2; extra == "all"
|
|
219
|
+
Requires-Dist: scipy; extra == "all"
|
|
220
|
+
Requires-Dist: scipy>=1.5.3; extra == "all"
|
|
221
|
+
Requires-Dist: selenium>=3.141.0; extra == "all"
|
|
222
|
+
Requires-Dist: setuptools>=30.3.0; extra == "all"
|
|
223
|
+
Requires-Dist: spatialpandas>=0.4.3; extra == "all"
|
|
224
|
+
Requires-Dist: streamz>=0.3.0; extra == "all"
|
|
225
|
+
Requires-Dist: xarray; extra == "all"
|
|
226
|
+
Requires-Dist: xarray>=0.18.2; extra == "all"
|
|
37
227
|
|
|
38
228
|
# hvPlot makes data analysis and visualization simple <img src="https://github.com/holoviz/hvplot/blob/main/doc/_static/logo.png?raw=true" style="width:2em;margin-bottom:-15px">
|
|
39
229
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
collect_ignore_glob = []
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"metadata": {},
|
|
80
80
|
"outputs": [],
|
|
81
81
|
"source": [
|
|
82
|
-
"explorer = df.hvplot.explorer(x='bill_length_mm', y='bill_depth_mm',
|
|
82
|
+
"explorer = df.hvplot.explorer(x='bill_length_mm', y='bill_depth_mm', by=['species'])\n",
|
|
83
83
|
"explorer"
|
|
84
84
|
]
|
|
85
85
|
},
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
"metadata": {},
|
|
148
148
|
"outputs": [],
|
|
149
149
|
"source": [
|
|
150
|
-
"hvexplorer.param.update(
|
|
150
|
+
"hvexplorer.param.update(x='bill_length_mm', y_multi=['bill_depth_mm'], by=['species'])\n",
|
|
151
151
|
"hvexplorer.labels.title = 'Penguins Scatter'"
|
|
152
152
|
]
|
|
153
153
|
},
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"\n",
|
|
25
25
|
" conda install geoviews\n",
|
|
26
26
|
" \n",
|
|
27
|
-
"or
|
|
27
|
+
"or with pip:\n",
|
|
28
28
|
"\n",
|
|
29
29
|
" pip install geoviews\n",
|
|
30
30
|
"\n",
|
|
@@ -265,7 +265,7 @@
|
|
|
265
265
|
"- ``global_extent`` (default=False): Whether to expand the plot extent to span the whole globe\n",
|
|
266
266
|
"- ``project`` (default=False): Whether to project the data before plotting (adds initial overhead but avoids projecting data when plot is dynamically updated)\n",
|
|
267
267
|
"- ``tiles`` (default=False): Whether to overlay the plot on a tile source. Tiles sources can be selected by name, the default is 'Wikipedia'.\n",
|
|
268
|
-
"Other options are: 'CartoDark', 'CartoEco', 'CartoLight', 'CartoMidnight', 'EsriImagery', 'EsriNatGeo', 'EsriReference''EsriTerrain', 'EsriUSATopo', 'OSM', 'StamenLabels', 'StamenTerrain', 'StamenTerrainRetina', 'StamenToner', 'StamenTonerBackground', 'StamenWatercolor'"
|
|
268
|
+
"Other options are: 'CartoDark', 'CartoEco', 'CartoLight', 'CartoMidnight', 'EsriImagery', 'EsriNatGeo', 'EsriReference''EsriTerrain', 'EsriUSATopo', 'OSM', 'StamenLabels', 'StamenTerrain', 'StamenTerrainRetina', 'StamenToner', 'StamenTonerBackground', 'StamenWatercolor'. Stamen tile sources require a Stadia account when not running locally; see [stadiamaps.com](https://stadiamaps.com/)."
|
|
269
269
|
]
|
|
270
270
|
}
|
|
271
271
|
],
|
|
@@ -405,7 +405,7 @@
|
|
|
405
405
|
"cell_type": "markdown",
|
|
406
406
|
"metadata": {},
|
|
407
407
|
"source": [
|
|
408
|
-
"If you want more control over the layout, you can use any of the features from [Panel](https://panel.holoviz.org)
|
|
408
|
+
"If you want more control over the layout, you can use any of the features from [Panel](https://panel.holoviz.org). In this case, `interactive.panel()` (or `interactive.output()`) make sure you display the interactive plot only, with the widgets explicitly declared by `interactive.widgets()`:"
|
|
409
409
|
]
|
|
410
410
|
},
|
|
411
411
|
{
|
|
@@ -235,10 +235,10 @@
|
|
|
235
235
|
"metadata": {},
|
|
236
236
|
"outputs": [],
|
|
237
237
|
"source": [
|
|
238
|
-
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg(
|
|
238
|
+
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg({'min': np.min, 'max': np.max})\n",
|
|
239
239
|
"delay_mean = flights.groupby('day')['carrier_delay'].mean()\n",
|
|
240
240
|
"\n",
|
|
241
|
-
"delay_min_max.hvplot.area(x='day', y='
|
|
241
|
+
"delay_min_max.hvplot.area(x='day', y='min', y2='max', alpha=0.2) * delay_mean.hvplot()"
|
|
242
242
|
]
|
|
243
243
|
},
|
|
244
244
|
{
|
|
@@ -239,10 +239,10 @@
|
|
|
239
239
|
"metadata": {},
|
|
240
240
|
"outputs": [],
|
|
241
241
|
"source": [
|
|
242
|
-
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg(
|
|
242
|
+
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg({'min': np.min, 'max': np.max})\n",
|
|
243
243
|
"delay_mean = flights.groupby('day')['carrier_delay'].mean()\n",
|
|
244
244
|
"\n",
|
|
245
|
-
"delay_min_max.hvplot.area(x='day', y='
|
|
245
|
+
"delay_min_max.hvplot.area(x='day', y='min', y2='max', alpha=0.2) * delay_mean.hvplot()"
|
|
246
246
|
]
|
|
247
247
|
},
|
|
248
248
|
{
|
|
@@ -295,7 +295,7 @@
|
|
|
295
295
|
"metadata": {},
|
|
296
296
|
"outputs": [],
|
|
297
297
|
"source": [
|
|
298
|
-
"crime.hvplot.scatter(x='Violent Crime rate', y='Burglary rate')"
|
|
298
|
+
"crime.hvplot.scatter(x='Violent Crime rate', y='Burglary rate', c='Year')"
|
|
299
299
|
]
|
|
300
300
|
},
|
|
301
301
|
{
|
|
@@ -365,7 +365,7 @@
|
|
|
365
365
|
"metadata": {},
|
|
366
366
|
"outputs": [],
|
|
367
367
|
"source": [
|
|
368
|
-
"crime.hvplot.bivariate(x='Violent Crime rate', y='Burglary rate', width=600, height=500
|
|
368
|
+
"crime.hvplot.bivariate(x='Violent Crime rate', y='Burglary rate', width=600, height=500)"
|
|
369
369
|
]
|
|
370
370
|
},
|
|
371
371
|
{
|
|
@@ -383,7 +383,7 @@
|
|
|
383
383
|
"metadata": {},
|
|
384
384
|
"outputs": [],
|
|
385
385
|
"source": [
|
|
386
|
-
"flights.compute().hvplot.heatmap(x='day', y='carrier', C='depdelay', reduce_function=np.mean
|
|
386
|
+
"flights.compute().hvplot.heatmap(x='day', y='carrier', C='depdelay', reduce_function=np.mean).opts(show_values=False)"
|
|
387
387
|
]
|
|
388
388
|
},
|
|
389
389
|
{
|
|
@@ -246,10 +246,10 @@
|
|
|
246
246
|
"metadata": {},
|
|
247
247
|
"outputs": [],
|
|
248
248
|
"source": [
|
|
249
|
-
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg(
|
|
249
|
+
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg({'min': np.min, 'max': np.max})\n",
|
|
250
250
|
"delay_mean = flights.groupby('day')['carrier_delay'].mean()\n",
|
|
251
251
|
"\n",
|
|
252
|
-
"delay_min_max.hvplot.area(x='day', y='
|
|
252
|
+
"delay_min_max.hvplot.area(x='day', y='min', y2='max', alpha=0.2) * delay_mean.hvplot()"
|
|
253
253
|
]
|
|
254
254
|
},
|
|
255
255
|
{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"git_describe": "v0.9.1-0-g58c6ece", "version_string": "0.9.1"}
|
|
@@ -609,7 +609,7 @@ class HoloViewsConverter:
|
|
|
609
609
|
# Default to categorical camp if we detect categorical shading
|
|
610
610
|
if ((self.datashade or self.rasterize) and (self.aggregator is None or 'count_cat' in str(self.aggregator)) and
|
|
611
611
|
((self.by and not self.subplots) or
|
|
612
|
-
(isinstance(self.y, list) or (self.y is None and len(set(self.variables) - set(self.indexes)) > 1)))):
|
|
612
|
+
((isinstance(self.y, list) and len(self.y) > 1) or (self.y is None and len(set(self.variables) - set(self.indexes)) > 1)))):
|
|
613
613
|
self._style_opts['cmap'] = self._default_cmaps['categorical']
|
|
614
614
|
elif symmetric:
|
|
615
615
|
self._style_opts['cmap'] = self._default_cmaps['diverging']
|
|
@@ -2060,7 +2060,11 @@ class HoloViewsConverter:
|
|
|
2060
2060
|
o, h, l, c = y
|
|
2061
2061
|
neg, pos = self.kwds.get('neg_color', 'red'), self.kwds.get('pos_color', 'green')
|
|
2062
2062
|
color_exp = (dim(o)>dim(c)).categorize({True: neg, False: pos})
|
|
2063
|
-
|
|
2063
|
+
ohlc_cols = [o, h, l, c]
|
|
2064
|
+
if x in self.hover_cols:
|
|
2065
|
+
self.hover_cols.remove(x)
|
|
2066
|
+
vdims = list(dict.fromkeys(ohlc_cols + self.hover_cols))
|
|
2067
|
+
ds = Dataset(data, [x], vdims)
|
|
2064
2068
|
if ds.data[x].dtype.kind in 'SUO':
|
|
2065
2069
|
rects = Rectangles(ds, [x, o, x, c])
|
|
2066
2070
|
else:
|
|
@@ -2078,9 +2082,9 @@ class HoloViewsConverter:
|
|
|
2078
2082
|
tools = seg_cur_opts.pop('tools', [])
|
|
2079
2083
|
if 'hover' in tools:
|
|
2080
2084
|
tools[tools.index('hover')] = HoverTool(tooltips=[
|
|
2081
|
-
(x, '@{
|
|
2082
|
-
('Low', '@{
|
|
2083
|
-
])
|
|
2085
|
+
(x, f'@{x}'), ('Open', f'@{o}'), ('High', f'@{h}'),
|
|
2086
|
+
('Low', f'@{l}'), ('Close', f'@{c}')
|
|
2087
|
+
] + [(hc, f'@{hc}') for hc in vdims[4:]])
|
|
2084
2088
|
seg_cur_opts['tools'] = tools
|
|
2085
2089
|
seg_cur_opts ['color'] = self.kwds.get('line_color', 'black')
|
|
2086
2090
|
if 'xlabel' not in seg_cur_opts:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
collect_ignore_glob = []
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"metadata": {},
|
|
80
80
|
"outputs": [],
|
|
81
81
|
"source": [
|
|
82
|
-
"explorer = df.hvplot.explorer(x='bill_length_mm', y='bill_depth_mm',
|
|
82
|
+
"explorer = df.hvplot.explorer(x='bill_length_mm', y='bill_depth_mm', by=['species'])\n",
|
|
83
83
|
"explorer"
|
|
84
84
|
]
|
|
85
85
|
},
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
"metadata": {},
|
|
148
148
|
"outputs": [],
|
|
149
149
|
"source": [
|
|
150
|
-
"hvexplorer.param.update(
|
|
150
|
+
"hvexplorer.param.update(x='bill_length_mm', y_multi=['bill_depth_mm'], by=['species'])\n",
|
|
151
151
|
"hvexplorer.labels.title = 'Penguins Scatter'"
|
|
152
152
|
]
|
|
153
153
|
},
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"\n",
|
|
25
25
|
" conda install geoviews\n",
|
|
26
26
|
" \n",
|
|
27
|
-
"or
|
|
27
|
+
"or with pip:\n",
|
|
28
28
|
"\n",
|
|
29
29
|
" pip install geoviews\n",
|
|
30
30
|
"\n",
|
|
@@ -265,7 +265,7 @@
|
|
|
265
265
|
"- ``global_extent`` (default=False): Whether to expand the plot extent to span the whole globe\n",
|
|
266
266
|
"- ``project`` (default=False): Whether to project the data before plotting (adds initial overhead but avoids projecting data when plot is dynamically updated)\n",
|
|
267
267
|
"- ``tiles`` (default=False): Whether to overlay the plot on a tile source. Tiles sources can be selected by name, the default is 'Wikipedia'.\n",
|
|
268
|
-
"Other options are: 'CartoDark', 'CartoEco', 'CartoLight', 'CartoMidnight', 'EsriImagery', 'EsriNatGeo', 'EsriReference''EsriTerrain', 'EsriUSATopo', 'OSM', 'StamenLabels', 'StamenTerrain', 'StamenTerrainRetina', 'StamenToner', 'StamenTonerBackground', 'StamenWatercolor'"
|
|
268
|
+
"Other options are: 'CartoDark', 'CartoEco', 'CartoLight', 'CartoMidnight', 'EsriImagery', 'EsriNatGeo', 'EsriReference''EsriTerrain', 'EsriUSATopo', 'OSM', 'StamenLabels', 'StamenTerrain', 'StamenTerrainRetina', 'StamenToner', 'StamenTonerBackground', 'StamenWatercolor'. Stamen tile sources require a Stadia account when not running locally; see [stadiamaps.com](https://stadiamaps.com/)."
|
|
269
269
|
]
|
|
270
270
|
}
|
|
271
271
|
],
|
|
@@ -405,7 +405,7 @@
|
|
|
405
405
|
"cell_type": "markdown",
|
|
406
406
|
"metadata": {},
|
|
407
407
|
"source": [
|
|
408
|
-
"If you want more control over the layout, you can use any of the features from [Panel](https://panel.holoviz.org)
|
|
408
|
+
"If you want more control over the layout, you can use any of the features from [Panel](https://panel.holoviz.org). In this case, `interactive.panel()` (or `interactive.output()`) make sure you display the interactive plot only, with the widgets explicitly declared by `interactive.widgets()`:"
|
|
409
409
|
]
|
|
410
410
|
},
|
|
411
411
|
{
|
|
@@ -235,10 +235,10 @@
|
|
|
235
235
|
"metadata": {},
|
|
236
236
|
"outputs": [],
|
|
237
237
|
"source": [
|
|
238
|
-
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg(
|
|
238
|
+
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg({'min': np.min, 'max': np.max})\n",
|
|
239
239
|
"delay_mean = flights.groupby('day')['carrier_delay'].mean()\n",
|
|
240
240
|
"\n",
|
|
241
|
-
"delay_min_max.hvplot.area(x='day', y='
|
|
241
|
+
"delay_min_max.hvplot.area(x='day', y='min', y2='max', alpha=0.2) * delay_mean.hvplot()"
|
|
242
242
|
]
|
|
243
243
|
},
|
|
244
244
|
{
|
|
@@ -239,10 +239,10 @@
|
|
|
239
239
|
"metadata": {},
|
|
240
240
|
"outputs": [],
|
|
241
241
|
"source": [
|
|
242
|
-
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg(
|
|
242
|
+
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg({'min': np.min, 'max': np.max})\n",
|
|
243
243
|
"delay_mean = flights.groupby('day')['carrier_delay'].mean()\n",
|
|
244
244
|
"\n",
|
|
245
|
-
"delay_min_max.hvplot.area(x='day', y='
|
|
245
|
+
"delay_min_max.hvplot.area(x='day', y='min', y2='max', alpha=0.2) * delay_mean.hvplot()"
|
|
246
246
|
]
|
|
247
247
|
},
|
|
248
248
|
{
|
|
@@ -295,7 +295,7 @@
|
|
|
295
295
|
"metadata": {},
|
|
296
296
|
"outputs": [],
|
|
297
297
|
"source": [
|
|
298
|
-
"crime.hvplot.scatter(x='Violent Crime rate', y='Burglary rate')"
|
|
298
|
+
"crime.hvplot.scatter(x='Violent Crime rate', y='Burglary rate', c='Year')"
|
|
299
299
|
]
|
|
300
300
|
},
|
|
301
301
|
{
|
|
@@ -365,7 +365,7 @@
|
|
|
365
365
|
"metadata": {},
|
|
366
366
|
"outputs": [],
|
|
367
367
|
"source": [
|
|
368
|
-
"crime.hvplot.bivariate(x='Violent Crime rate', y='Burglary rate', width=600, height=500
|
|
368
|
+
"crime.hvplot.bivariate(x='Violent Crime rate', y='Burglary rate', width=600, height=500)"
|
|
369
369
|
]
|
|
370
370
|
},
|
|
371
371
|
{
|
|
@@ -383,7 +383,7 @@
|
|
|
383
383
|
"metadata": {},
|
|
384
384
|
"outputs": [],
|
|
385
385
|
"source": [
|
|
386
|
-
"flights.compute().hvplot.heatmap(x='day', y='carrier', C='depdelay', reduce_function=np.mean
|
|
386
|
+
"flights.compute().hvplot.heatmap(x='day', y='carrier', C='depdelay', reduce_function=np.mean).opts(show_values=False)"
|
|
387
387
|
]
|
|
388
388
|
},
|
|
389
389
|
{
|
|
@@ -246,10 +246,10 @@
|
|
|
246
246
|
"metadata": {},
|
|
247
247
|
"outputs": [],
|
|
248
248
|
"source": [
|
|
249
|
-
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg(
|
|
249
|
+
"delay_min_max = flights.groupby(['day', 'carrier'])['carrier_delay'].mean().groupby('day').agg({'min': np.min, 'max': np.max})\n",
|
|
250
250
|
"delay_mean = flights.groupby('day')['carrier_delay'].mean()\n",
|
|
251
251
|
"\n",
|
|
252
|
-
"delay_min_max.hvplot.area(x='day', y='
|
|
252
|
+
"delay_min_max.hvplot.area(x='day', y='min', y2='max', alpha=0.2) * delay_mean.hvplot()"
|
|
253
253
|
]
|
|
254
254
|
},
|
|
255
255
|
{
|
|
@@ -492,7 +492,7 @@ class Interactive:
|
|
|
492
492
|
|
|
493
493
|
Examples
|
|
494
494
|
--------
|
|
495
|
-
>>> widget = panel.
|
|
495
|
+
>>> widget = panel.widgets.IntSlider(value=1, start=1, end=5)
|
|
496
496
|
>>> dfi = df.interactive(width=200)
|
|
497
497
|
>>> dfi.head(widget)
|
|
498
498
|
"""
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import holoviews as hv
|
|
2
|
-
from ..util import with_hv_extension
|
|
2
|
+
from ..util import with_hv_extension, is_polars
|
|
3
3
|
|
|
4
4
|
from .core import hvPlot, hvPlotTabular # noqa
|
|
5
5
|
|
|
@@ -30,6 +30,9 @@ def plot(data, kind, **kwargs):
|
|
|
30
30
|
if v is not None:
|
|
31
31
|
no_none_kwargs[k] = v
|
|
32
32
|
|
|
33
|
+
if is_polars(data):
|
|
34
|
+
from .core import hvPlotTabularPolars
|
|
35
|
+
return hvPlotTabularPolars(data)(kind=kind, **no_none_kwargs)
|
|
33
36
|
return hvPlotTabular(data)(kind=kind, **no_none_kwargs)
|
|
34
37
|
|
|
35
38
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import itertools
|
|
1
2
|
from collections import defaultdict
|
|
2
3
|
|
|
3
4
|
import param
|
|
@@ -1862,6 +1863,47 @@ class hvPlotTabular(hvPlotBase):
|
|
|
1862
1863
|
return self(x, y, text=text, kind="labels", **kwds)
|
|
1863
1864
|
|
|
1864
1865
|
|
|
1866
|
+
class hvPlotTabularPolars(hvPlotTabular):
|
|
1867
|
+
def _get_converter(self, x=None, y=None, kind=None, **kwds):
|
|
1868
|
+
import polars as pl
|
|
1869
|
+
|
|
1870
|
+
params = dict(self._metadata, **kwds)
|
|
1871
|
+
x = x or params.pop("x", None)
|
|
1872
|
+
y = y or params.pop("y", None)
|
|
1873
|
+
kind = kind or params.pop("kind", None)
|
|
1874
|
+
|
|
1875
|
+
# Find columns which should be converted for LazyDataFrame and DataFrame
|
|
1876
|
+
if isinstance(self._data, (pl.LazyFrame, pl.DataFrame)):
|
|
1877
|
+
if params.get("hover_cols") == "all":
|
|
1878
|
+
columns = list(self._data.columns)
|
|
1879
|
+
else:
|
|
1880
|
+
possible_columns = [
|
|
1881
|
+
[v] if isinstance(v, str) else v
|
|
1882
|
+
for v in params.values()
|
|
1883
|
+
if isinstance(v, (str, list))
|
|
1884
|
+
]
|
|
1885
|
+
columns = (
|
|
1886
|
+
set(self._data.columns) & set(itertools.chain(*possible_columns))
|
|
1887
|
+
) or {self._data.columns[0]}
|
|
1888
|
+
xs = x if is_list_like(x) else (x,)
|
|
1889
|
+
ys = y if is_list_like(y) else (y,)
|
|
1890
|
+
columns |= {*xs, *ys}
|
|
1891
|
+
columns.discard(None)
|
|
1892
|
+
|
|
1893
|
+
if isinstance(self._data, pl.DataFrame):
|
|
1894
|
+
data = self._data.select(columns).to_pandas()
|
|
1895
|
+
elif isinstance(self._data, pl.Series):
|
|
1896
|
+
data = self._data.to_pandas()
|
|
1897
|
+
elif isinstance(self._data, pl.LazyFrame):
|
|
1898
|
+
data = self._data.select(columns).collect().to_pandas()
|
|
1899
|
+
else:
|
|
1900
|
+
raise ValueError(
|
|
1901
|
+
"Only Polars DataFrame, Series, and LazyFrame are supported"
|
|
1902
|
+
)
|
|
1903
|
+
|
|
1904
|
+
return HoloViewsConverter(data, x, y, kind=kind, **params)
|
|
1905
|
+
|
|
1906
|
+
|
|
1865
1907
|
class hvPlot(hvPlotTabular):
|
|
1866
1908
|
"""
|
|
1867
1909
|
The plotting method: `df.hvplot(...)` creates a plot similarly to the familiar Pandas
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"""Adds the `.hvplot` method to pl.DataFrame, pl.LazyFrame and pl.Series"""
|
|
2
|
+
from hvplot import post_patch
|
|
3
|
+
from hvplot.plotting.core import hvPlotTabularPolars
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def patch(name="hvplot", extension="bokeh", logo=False):
|
|
7
|
+
try:
|
|
8
|
+
import polars as pl
|
|
9
|
+
except:
|
|
10
|
+
raise ImportError(
|
|
11
|
+
"Could not patch plotting API onto Polars. Polars could not be imported."
|
|
12
|
+
)
|
|
13
|
+
pl.api.register_dataframe_namespace(name)(hvPlotTabularPolars)
|
|
14
|
+
pl.api.register_series_namespace(name)(hvPlotTabularPolars)
|
|
15
|
+
pl.api.register_lazyframe_namespace(name)(hvPlotTabularPolars)
|
|
16
|
+
|
|
17
|
+
post_patch(extension, logo)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
patch()
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import pandas as pd
|
|
2
|
+
import hvplot.pandas # noqa
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
df = pd.DataFrame({
|
|
6
|
+
'Open': [100.00, 101.25, 102.75],
|
|
7
|
+
'High': [104.10, 105.50, 110.00],
|
|
8
|
+
'Low': [94.00, 97.10, 99.20],
|
|
9
|
+
'Close': [101.15, 99.70, 109.50],
|
|
10
|
+
'Volume': [10012, 5000, 18000],
|
|
11
|
+
}, index=[pd.Timestamp('2022-08-01'), pd.Timestamp('2022-08-03'), pd.Timestamp('2022-08-04')])
|
|
12
|
+
|
|
13
|
+
ohlc_cols = ['Open', 'High', 'Low', 'Close']
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def test_ohlc_hover_cols():
|
|
17
|
+
plot = df.hvplot.ohlc(y=ohlc_cols, hover_cols=['Volume'])
|
|
18
|
+
segments = plot.Segments.I
|
|
19
|
+
assert 'Volume' in segments
|
|
20
|
+
tooltips = segments.opts.get('plot').kwargs['tools'][0].tooltips
|
|
21
|
+
assert len(tooltips) == len(df.columns) + 1
|
|
22
|
+
assert tooltips[-1] == ('Volume', '@Volume')
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def test_ohlc_hover_cols_all():
|
|
26
|
+
plot = df.hvplot.ohlc(y=ohlc_cols, hover_cols='all')
|
|
27
|
+
segments = plot.Segments.I
|
|
28
|
+
assert 'Volume' in segments
|
|
29
|
+
tooltips = segments.opts.get('plot').kwargs['tools'][0].tooltips
|
|
30
|
+
assert len(tooltips) == len(df.columns) + 1
|
|
31
|
+
assert tooltips[-1] == ('Volume', '@Volume')
|