hvplot 0.11.0a2__tar.gz → 0.11.0a3__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.
Files changed (195) hide show
  1. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/PKG-INFO +1 -1
  2. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Customization.ipynb +14 -8
  3. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/_version.py +1 -1
  4. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/converter.py +28 -17
  5. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testcharts.py +25 -0
  6. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testoperations.py +12 -0
  7. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testui.py +20 -1
  8. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/ui.py +19 -4
  9. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot.egg-info/PKG-INFO +1 -1
  10. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/.git-blame-ignore-revs +0 -0
  11. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/.git_archival.txt +0 -0
  12. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/.gitattributes +0 -0
  13. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/.github/CONTRIBUTING.md +0 -0
  14. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/.github/FUNDING.yml +0 -0
  15. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/.github/workflows/build.yaml +0 -0
  16. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/.github/workflows/docs.yaml +0 -0
  17. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/.github/workflows/test.yaml +0 -0
  18. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/.gitignore +0 -0
  19. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/.pre-commit-config.yaml +0 -0
  20. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/CHANGELOG.md +0 -0
  21. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/CODE_OF_CONDUCT.md +0 -0
  22. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/LICENSE +0 -0
  23. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/README.md +0 -0
  24. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/binder/environment.yml +0 -0
  25. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/binder/postBuild +0 -0
  26. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/conda.recipe/meta.yaml +0 -0
  27. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/custom.css +0 -0
  28. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/favicon.ico +0 -0
  29. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/bokeh.gif +0 -0
  30. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/dask.gif +0 -0
  31. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/explorer.gif +0 -0
  32. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/geo.gif +0 -0
  33. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/geopandas.gif +0 -0
  34. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/intake.gif +0 -0
  35. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/interactive_hvplot.gif +0 -0
  36. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/interactive_pandas.gif +0 -0
  37. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/interactive_xarray.gif +0 -0
  38. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/large_data.gif +0 -0
  39. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/layout.gif +0 -0
  40. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/matplotlib.png +0 -0
  41. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/networkx.gif +0 -0
  42. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/overlay.png +0 -0
  43. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/pandas.gif +0 -0
  44. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/plotly.gif +0 -0
  45. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/widgets.gif +0 -0
  46. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/home/xarray.gif +0 -0
  47. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/images/heat_and_trees.png +0 -0
  48. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/images/portfolio.png +0 -0
  49. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/logo.png +0 -0
  50. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/logo_horizontal.svg +0 -0
  51. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/_static/logo_stacked.svg +0 -0
  52. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/about.md +0 -0
  53. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/assets/console.png +0 -0
  54. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/assets/console_server.gif +0 -0
  55. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/assets/diagram.png +0 -0
  56. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/assets/diagram.svg +0 -0
  57. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/assets/hvplot-wm.png +0 -0
  58. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/assets/streamz_demo.gif +0 -0
  59. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/conf.py +0 -0
  60. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/conftest.py +0 -0
  61. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/developer_guide/index.md +0 -0
  62. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/getting_started/explorer.ipynb +0 -0
  63. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/getting_started/hvplot.ipynb +0 -0
  64. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/getting_started/index.md +0 -0
  65. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/getting_started/installation.md +0 -0
  66. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/getting_started/interactive.ipynb +0 -0
  67. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/governance/project-docs/CONTRIBUTING.md +0 -0
  68. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/governance/project-docs/GOVERNANCE.md +0 -0
  69. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/governance/project-docs/LICENSE.md +0 -0
  70. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/governance/project-docs/MEMBERS.md +0 -0
  71. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/index.md +0 -0
  72. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/geopandas/points.ipynb +0 -0
  73. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/geopandas/polygons.ipynb +0 -0
  74. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/andrewscurves.ipynb +0 -0
  75. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/area.ipynb +0 -0
  76. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/bar.ipynb +0 -0
  77. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/barh.ipynb +0 -0
  78. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/bivariate.ipynb +0 -0
  79. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/box.ipynb +0 -0
  80. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/errorbars.ipynb +0 -0
  81. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/heatmap.ipynb +0 -0
  82. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/hexbin.ipynb +0 -0
  83. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/hist.ipynb +0 -0
  84. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/kde.ipynb +0 -0
  85. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/labels.ipynb +0 -0
  86. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/lagplot.ipynb +0 -0
  87. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/line.ipynb +0 -0
  88. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/ohlc.ipynb +0 -0
  89. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/parallelcoordinates.ipynb +0 -0
  90. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/paths.ipynb +0 -0
  91. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/scatter.ipynb +0 -0
  92. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/scattermatrix.ipynb +0 -0
  93. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/step.ipynb +0 -0
  94. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/table.ipynb +0 -0
  95. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/tabular/violin.ipynb +0 -0
  96. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/xarray/bar.ipynb +0 -0
  97. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/xarray/contour.ipynb +0 -0
  98. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/xarray/contourf.ipynb +0 -0
  99. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/xarray/hist.ipynb +0 -0
  100. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/xarray/image.ipynb +0 -0
  101. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/xarray/kde.ipynb +0 -0
  102. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/xarray/line.ipynb +0 -0
  103. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/xarray/quadmesh.ipynb +0 -0
  104. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/xarray/rgb.ipynb +0 -0
  105. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/xarray/vectorfield.ipynb +0 -0
  106. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/reference/xarray/violin.ipynb +0 -0
  107. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/releases.md +0 -0
  108. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/roadmap.md +0 -0
  109. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/topics.md +0 -0
  110. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Explorer.ipynb +0 -0
  111. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Geographic_Data.ipynb +0 -0
  112. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Gridded_Data.ipynb +0 -0
  113. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Integrations.ipynb +0 -0
  114. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Interactive.ipynb +0 -0
  115. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Introduction.ipynb +0 -0
  116. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Large_Timeseries.ipynb +0 -0
  117. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/NetworkX.ipynb +0 -0
  118. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Pandas_API.ipynb +0 -0
  119. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Plotting.ipynb +0 -0
  120. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Plotting_Extensions.ipynb +0 -0
  121. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Plotting_with_Matplotlib.ipynb +0 -0
  122. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Plotting_with_Plotly.ipynb +0 -0
  123. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Statistical_Plots.ipynb +0 -0
  124. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Streaming.ipynb +0 -0
  125. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Subplots.ipynb +0 -0
  126. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Timeseries_Data.ipynb +0 -0
  127. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Viewing.ipynb +0 -0
  128. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/Widgets.ipynb +0 -0
  129. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/images/simple.svg +0 -0
  130. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/doc/user_guide/index.md +0 -0
  131. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/envs/py3.10-tests.yaml +0 -0
  132. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/envs/py3.11-docs.yaml +0 -0
  133. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/envs/py3.11-tests.yaml +0 -0
  134. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/envs/py3.12-tests.yaml +0 -0
  135. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/envs/py3.9-tests.yaml +0 -0
  136. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/__init__.py +0 -0
  137. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/backend_transforms.py +0 -0
  138. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/cudf.py +0 -0
  139. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/dask.py +0 -0
  140. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/data/crime.csv +0 -0
  141. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/datasets.yaml +0 -0
  142. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/fugue.py +0 -0
  143. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/ibis.py +0 -0
  144. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/intake.py +0 -0
  145. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/interactive.py +0 -0
  146. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/networkx.py +0 -0
  147. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/pandas.py +0 -0
  148. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/plotting/__init__.py +0 -0
  149. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/plotting/andrews_curves.py +0 -0
  150. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/plotting/core.py +0 -0
  151. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/plotting/lag_plot.py +0 -0
  152. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/plotting/parallel_coordinates.py +0 -0
  153. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/plotting/scatter_matrix.py +0 -0
  154. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/polars.py +0 -0
  155. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/sample_data.py +0 -0
  156. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/streamz.py +0 -0
  157. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/__init__.py +0 -0
  158. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/conftest.py +0 -0
  159. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/data/README.md +0 -0
  160. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/data/RGB-red.byte.tif +0 -0
  161. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/plotting/__init__.py +0 -0
  162. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/plotting/testcore.py +0 -0
  163. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/plotting/testohlc.py +0 -0
  164. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/plotting/testscattermatrix.py +0 -0
  165. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/test_links.py +0 -0
  166. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testbackend_transforms.py +0 -0
  167. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testfugue.py +0 -0
  168. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testgeo.py +0 -0
  169. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testgeowithoutgv.py +0 -0
  170. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testgridplots.py +0 -0
  171. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testhelp.py +0 -0
  172. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testibis.py +0 -0
  173. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testinteractive.py +0 -0
  174. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testnetworkx.py +0 -0
  175. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testoptions.py +0 -0
  176. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testoverrides.py +0 -0
  177. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testpanel.py +0 -0
  178. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testpatch.py +0 -0
  179. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testplotting.py +0 -0
  180. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/teststatplots.py +0 -0
  181. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/teststreaming.py +0 -0
  182. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testtransforms.py +0 -0
  183. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/testutil.py +0 -0
  184. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/tests/util.py +0 -0
  185. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/util.py +0 -0
  186. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/utilities.py +0 -0
  187. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot/xarray.py +0 -0
  188. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot.egg-info/SOURCES.txt +0 -0
  189. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot.egg-info/dependency_links.txt +0 -0
  190. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot.egg-info/entry_points.txt +0 -0
  191. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot.egg-info/requires.txt +0 -0
  192. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/hvplot.egg-info/top_level.txt +0 -0
  193. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/pyproject.toml +0 -0
  194. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/scripts/update_conda_envs.py +0 -0
  195. {hvplot-0.11.0a2 → hvplot-0.11.0a3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hvplot
3
- Version: 0.11.0a2
3
+ Version: 0.11.0a3
4
4
  Summary: A high-level plotting API for the PyData ecosystem built on HoloViews.
5
5
  Author-email: Philipp Rudiger <developers@holoviz.org>
6
6
  Maintainer-email: HoloViz developers <developers@holoviz.org>
@@ -60,22 +60,20 @@
60
60
  " Whether to flip the axis left to right or up and down respectively\n",
61
61
  " grid (default=False): boolean\n",
62
62
  " Whether to show a grid\n",
63
- " hover : boolean\n",
63
+ " hover: boolean or Literal[\"vline\", \"hline\"]\n",
64
64
  " Whether to show hover tooltips, default is True unless datashade is\n",
65
- " True in which case hover is False by default\n",
65
+ " True in which case hover is False by default. Can also set\n",
66
+ " `vline` for hitbox across a vertical line or `hline` for hitbox across a horizontal line.\n",
66
67
  " hover_cols (default=[]): list or str\n",
67
68
  " Additional columns to add to the hover tool or 'all' which will\n",
68
69
  " includes all columns (including indexes if use_index is True).\n",
70
+ " hover_formatters:\n",
71
+ " A dict of formatting options for the hover tooltip.\n",
69
72
  " hover_tooltips list[str] or list[tuple]:\n",
70
73
  " A list of dimensions to be displayed in the hover tooltip. See\n",
71
74
  " [HoloViews docs](https://holoviews.org/user_guide/Plotting_with_Bokeh.html#hover-tools)\n",
72
75
  " or [Bokeh docs](https://docs.bokeh.org/en/latest/docs/user_guide/interaction/tools.html#hovertool)\n",
73
76
  " for more info on structuring.\n",
74
- " hover_formatters:\n",
75
- " A dict of formatting options for the hover tooltip.\n",
76
- " hover_mode (default='mouse'):\n",
77
- " The hover mode determines how the hover tool is activated;\n",
78
- " select from 'mouse', 'vline', or 'hline'.\n",
79
77
  " invert (default=False): boolean\n",
80
78
  " Swaps x- and y-axis\n",
81
79
  " frame_width/frame_height: int\n",
@@ -202,6 +200,13 @@
202
200
  " dynspread (default=False):\n",
203
201
  " Allows plots generated with datashade=True to increase the point\n",
204
202
  " size to make sparse regions more visible\n",
203
+ " pixel_ratio (default=None):\n",
204
+ " Pixel ratio applied to the height and width, used when rasterizing or\n",
205
+ " datashading. When not set explicitly, the ratio is automatically\n",
206
+ " obtained from the browser device pixel ratio. Default is 1 when\n",
207
+ " the browser information is not available. Useful when the browser\n",
208
+ " information is not available (pixel_ratio=2 can give better results on\n",
209
+ " Retina displays) or for using lower resolution for speed.\n",
205
210
  " rasterize (default=False):\n",
206
211
  " Whether to apply rasterization using the datashader library\n",
207
212
  " returning an aggregated Image\n",
@@ -210,7 +215,8 @@
210
215
  " the number of individual data points present in the current zoom range\n",
211
216
  " is above this threshold. The raw plot is displayed otherwise.\n",
212
217
  " x_sampling/y_sampling (default=None):\n",
213
- " Specifies the smallest allowed sampling interval along the x/y axis."
218
+ " Specifies the smallest allowed sampling interval along the x/y axis.\n",
219
+ " Used when rasterizing or datashading."
214
220
  ]
215
221
  },
216
222
  {
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.11.0a2'
15
+ __version__ = version = '0.11.0a3'
16
16
  __version_tuple__ = version_tuple = (0, 11, 0)
@@ -148,12 +148,10 @@ class HoloViewsConverter:
148
148
  hover_cols (default=[]): list or str
149
149
  Additional columns to add to the hover tool or 'all' which will
150
150
  includes all columns (including indexes if use_index is True).
151
- hover_tooltips list[str] or list[tuple]:
152
- A list of dimensions to be displayed in the hover tooltip.
153
151
  hover_formatters:
154
152
  A dict of formatting options for the hover tooltip.
155
- hover_mode (default='mouse'):
156
- The hover mode determines how the hover tool is activated.
153
+ hover_tooltips list[str] or list[tuple]:
154
+ A list of dimensions to be displayed in the hover tooltip.
157
155
  invert (default=False): boolean
158
156
  Swaps x- and y-axis
159
157
  frame_width/frame_height: int
@@ -282,6 +280,13 @@ class HoloViewsConverter:
282
280
  For plots generated with datashade=True or rasterize=True,
283
281
  automatically increase the point size when the data is sparse
284
282
  so that individual points become more visible
283
+ pixel_ratio (default=None):
284
+ Pixel ratio applied to the height and width, used when rasterizing or
285
+ datashading. When not set explicitly, the ratio is automatically
286
+ obtained from the browser device pixel ratio. Default is 1 when
287
+ the browser information is not available. Useful when the browser
288
+ information is not available (pixel_ratio=2 can give better results on
289
+ Retina displays) or for using lower resolution for speed.
285
290
  rasterize (default=False):
286
291
  Whether to apply rasterization using the Datashader library,
287
292
  returning an aggregated Image (to be colormapped by the
@@ -292,6 +297,7 @@ class HoloViewsConverter:
292
297
  is above this threshold. The raw plot is displayed otherwise.
293
298
  x_sampling/y_sampling (default=None):
294
299
  Specifies the smallest allowed sampling interval along the x/y axis.
300
+ Used when rasterizing or datashading.
295
301
 
296
302
  Geographic options
297
303
  ------------------
@@ -428,6 +434,7 @@ class HoloViewsConverter:
428
434
  _op_options = [
429
435
  'datashade',
430
436
  'rasterize',
437
+ 'pixel_ratio',
431
438
  'x_sampling',
432
439
  'y_sampling',
433
440
  'downsample',
@@ -562,9 +569,9 @@ class HoloViewsConverter:
562
569
  logy=None,
563
570
  loglog=None,
564
571
  hover=None,
565
- hover_tooltips=None,
572
+ hover_cols=[],
566
573
  hover_formatters=None,
567
- hover_mode=None,
574
+ hover_tooltips=None,
568
575
  subplots=False,
569
576
  label=None,
570
577
  invert=False,
@@ -587,9 +594,9 @@ class HoloViewsConverter:
587
594
  flip_xaxis=None,
588
595
  flip_yaxis=None,
589
596
  dynspread=False,
590
- hover_cols=[],
591
597
  x_sampling=None,
592
598
  y_sampling=None,
599
+ pixel_ratio=None,
593
600
  project=False,
594
601
  tools=[],
595
602
  attr_labels=None,
@@ -706,6 +713,7 @@ class HoloViewsConverter:
706
713
  self.precompute = precompute
707
714
  self.x_sampling = x_sampling
708
715
  self.y_sampling = y_sampling
716
+ self.pixel_ratio = pixel_ratio
709
717
 
710
718
  # By type
711
719
  self.subplots = subplots
@@ -837,17 +845,15 @@ class HoloViewsConverter:
837
845
  if hover and not any(
838
846
  t for t in tools if isinstance(t, HoverTool) or t in ['hover', 'vline', 'hline']
839
847
  ):
840
- if hover in ['vline', 'hline']:
841
- tools.append(hover)
842
- else:
843
- tools.append('hover')
848
+ if hover in {'vline', 'hline'}:
849
+ plot_opts['hover_mode'] = hover
850
+ tools.append('hover')
851
+ if 'hover' in tools:
852
+ if hover_tooltips:
853
+ plot_opts['hover_tooltips'] = hover_tooltips
854
+ if hover_formatters:
855
+ plot_opts['hover_formatters'] = hover_formatters
844
856
  plot_opts['tools'] = tools
845
- if hover_tooltips:
846
- plot_opts['hover_tooltips'] = hover_tooltips
847
- if hover_formatters:
848
- plot_opts['hover_formatters'] = hover_formatters
849
- if hover_mode:
850
- plot_opts['hover_mode'] = hover_mode
851
857
 
852
858
  if self.crs and global_extent:
853
859
  plot_opts['global_extent'] = global_extent
@@ -1779,6 +1785,7 @@ class HoloViewsConverter:
1779
1785
  opts['line_width'] = self._style_opts['line_width']
1780
1786
 
1781
1787
  style = {}
1788
+
1782
1789
  if self.datashade:
1783
1790
  operation = datashade
1784
1791
  if 'cmap' in opts and 'color_key' not in opts:
@@ -1788,6 +1795,8 @@ class HoloViewsConverter:
1788
1795
  opts['cnorm'] = self._plot_opts['cnorm']
1789
1796
  if 'rescale_discrete_levels' in self._plot_opts:
1790
1797
  opts['rescale_discrete_levels'] = self._plot_opts['rescale_discrete_levels']
1798
+ if self.pixel_ratio:
1799
+ opts['pixel_ratio'] = self.pixel_ratio
1791
1800
  elif self.rasterize:
1792
1801
  operation = rasterize
1793
1802
  eltype = 'ImageStack' if categorical else 'Image'
@@ -1795,6 +1804,8 @@ class HoloViewsConverter:
1795
1804
  style['cmap'] = self._style_opts['cmap']
1796
1805
  if self._dim_ranges.get('c', (None, None)) != (None, None):
1797
1806
  style['clim'] = self._dim_ranges['c']
1807
+ if self.pixel_ratio:
1808
+ opts['pixel_ratio'] = self.pixel_ratio
1798
1809
 
1799
1810
  processed = self._resample_obj(operation, obj, opts)
1800
1811
  if self.dynspread:
@@ -469,6 +469,31 @@ class TestChart1D(ComparisonTestCase):
469
469
  bkplot = Store.renderers['bokeh'].get_plot(plot)
470
470
  assert not bkplot.tools
471
471
 
472
+ @parameterized.expand(['vline', 'hline'])
473
+ def test_hover_line(self, hover_mode):
474
+ plot = self.df.hvplot('x', 'y', hover=hover_mode)
475
+ opts = Store.lookup_options('bokeh', plot, 'plot')
476
+ self.assertEqual(opts.kwargs['hover_mode'], hover_mode)
477
+
478
+ def test_hover_tooltips(self):
479
+ plot = self.df.hvplot('x', 'y', hover_tooltips=['x'])
480
+ opts = Store.lookup_options('bokeh', plot, 'plot')
481
+ self.assertEqual(opts.kwargs['hover_tooltips'], ['x'])
482
+
483
+ def test_hover_formatter(self):
484
+ plot = self.df.hvplot('x', 'y', hover_formatters={'x': 'datetime'})
485
+ opts = Store.lookup_options('bokeh', plot, 'plot')
486
+ self.assertEqual(opts.kwargs['hover_formatters'], {'x': 'datetime'})
487
+
488
+ def test_hover_disabled(self):
489
+ plot = self.df.hvplot(
490
+ 'x', 'y', hover_tooltips=['x'], hover_formatters={'x': 'datetime'}, hover=False
491
+ )
492
+ opts = Store.lookup_options('bokeh', plot, 'plot')
493
+ self.assertEqual(opts.kwargs['tools'], [])
494
+ assert 'hover_formatters' not in opts.kwargs
495
+ assert 'hover_tooltips' not in opts.kwargs
496
+
472
497
  def test_labels_format(self):
473
498
  plot = self.df.hvplot('x', 'y', text='({x}, {y})', kind='labels')
474
499
  assert list(plot.dimensions()) == [Dimension('x'), Dimension('y'), Dimension('label')]
@@ -223,6 +223,18 @@ class TestDatashader(ComparisonTestCase):
223
223
  actual = plot.callback.inputs[0].callback.operation.p['cnorm']
224
224
  assert actual == expected
225
225
 
226
+ def test_rasterize_pixel_ratio(self):
227
+ expected = 0.5
228
+ plot = self.df.hvplot(x='x', y='y', rasterize=True, pixel_ratio=expected)
229
+ actual = plot.callback.inputs[0].callback.operation.p['pixel_ratio']
230
+ assert actual == expected
231
+
232
+ def test_datashade_pixel_ratio(self):
233
+ expected = 0.5
234
+ plot = self.df.hvplot(x='x', y='y', datashade=True, pixel_ratio=expected)
235
+ actual = plot.callback.inputs[0].callback.operation.p['pixel_ratio']
236
+ assert actual == expected
237
+
226
238
  def test_rasterize_rescale_discrete_levels(self):
227
239
  expected = False
228
240
  plot = self.df.hvplot(
@@ -11,7 +11,7 @@ import xarray as xr
11
11
  import pytest
12
12
 
13
13
  from bokeh.sampledata import penguins
14
- from hvplot.ui import hvDataFrameExplorer, hvGridExplorer
14
+ from hvplot.ui import hvDataFrameExplorer, hvGridExplorer, MAX_ROWS
15
15
 
16
16
  df = penguins.data
17
17
  ds_air_temperature = xr.tutorial.open_dataset('air_temperature')
@@ -395,3 +395,22 @@ def test_explorer_geo_revise_kind(kind_tuple):
395
395
  da = ds_air_temperature['air'].isel(time=0)
396
396
  explorer = hvplot.explorer(da, x='lon', y='lat', kind=kind_tuple[0], geo=True)
397
397
  assert explorer.kind == kind_tuple[1]
398
+
399
+
400
+ def test_max_rows_curve():
401
+ N = 100001
402
+ x = np.linspace(0.0, 6.4, num=N)
403
+ y = np.sin(x) + 10
404
+ df = pd.DataFrame({'x': x, 'y': y})
405
+ ui = hvplot.explorer(df, x='x', y='y', by=['#'], kind='line')
406
+ assert ui._data.equals(df.head(MAX_ROWS))
407
+
408
+
409
+ def test_max_rows_sample():
410
+ N = 100001
411
+ x = np.linspace(0.0, 6.4, num=N)
412
+ y = np.sin(x) + 10
413
+ df = pd.DataFrame({'x': x, 'y': y})
414
+ ui = hvplot.explorer(df, x='x', y='y', by=['#'], kind='scatter')
415
+ assert len(ui._data) == MAX_ROWS
416
+ assert not ui._data.equals(df.head(MAX_ROWS))
@@ -48,7 +48,7 @@ GEO_KEYS = [
48
48
  'feature_scale',
49
49
  ]
50
50
  AGGREGATORS = [None, 'count', 'min', 'max', 'mean', 'sum', 'any']
51
- MAX_ROWS = 10000
51
+ MAX_ROWS = 100000
52
52
  CONTROLS_WIDTH = 200
53
53
 
54
54
 
@@ -685,13 +685,27 @@ class hvPlotExplorer(Viewer):
685
685
 
686
686
  kwargs['min_height'] = 400
687
687
  df = self._data
688
+ show_alert = False
688
689
  if len(df) > MAX_ROWS and not (
689
690
  self.kind in KINDS['stats'] or kwargs.get('rasterize') or kwargs.get('datashade')
690
691
  ):
691
- df = df.sample(n=MAX_ROWS)
692
+ warn_message = (
693
+ f'plotted {MAX_ROWS} rows out of {len(df)} rows '
694
+ f'to avoid performance issues; use rasterize=True or datashade=True to visualize more.'
695
+ )
696
+ if self.kind == 'line':
697
+ warn_message = f'Selected the first {MAX_ROWS} rows and {warn_message}'
698
+ df = df.head(MAX_ROWS)
699
+ else:
700
+ warn_message = f'Randomly sampled and {warn_message}'
701
+ df = df.sample(n=MAX_ROWS)
702
+ self._alert.param.update(object=warn_message, visible=True)
703
+ param.main.param.warning(warn_message)
704
+ show_alert = True
705
+ self._data = df
692
706
  self._layout.loading = True
693
707
  try:
694
- self._hvplot = _hvPlot(df)(
708
+ self._hvplot = _hvPlot(self._data)(
695
709
  kind=self.kind, x=self.x, y=y, by=self.by, groupby=self.groupby, **kwargs
696
710
  )
697
711
  if opts_kwargs:
@@ -703,7 +717,8 @@ class hvPlotExplorer(Viewer):
703
717
  if len(self._hv_pane.widget_box) > 1:
704
718
  for w in self._hv_pane.widget_box:
705
719
  w.margin = (20, 5, 5, 5)
706
- self._alert.visible = False
720
+ if not show_alert:
721
+ self._alert.visible = False
707
722
  except Exception as e:
708
723
  self._alert.param.update(
709
724
  object=f'**Rendering failed with following error**: {e}', visible=True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hvplot
3
- Version: 0.11.0a2
3
+ Version: 0.11.0a3
4
4
  Summary: A high-level plotting API for the PyData ecosystem built on HoloViews.
5
5
  Author-email: Philipp Rudiger <developers@holoviz.org>
6
6
  Maintainer-email: HoloViz developers <developers@holoviz.org>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes