hvplot 0.9.3a1__py3-none-any.whl

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 (63) hide show
  1. hvplot/__init__.py +322 -0
  2. hvplot/_version.py +16 -0
  3. hvplot/backend_transforms.py +329 -0
  4. hvplot/converter.py +2855 -0
  5. hvplot/cudf.py +26 -0
  6. hvplot/dask.py +42 -0
  7. hvplot/data/crime.csv +56 -0
  8. hvplot/datasets.yaml +48 -0
  9. hvplot/fugue.py +64 -0
  10. hvplot/ibis.py +21 -0
  11. hvplot/intake.py +32 -0
  12. hvplot/interactive.py +968 -0
  13. hvplot/networkx.py +625 -0
  14. hvplot/pandas.py +30 -0
  15. hvplot/plotting/__init__.py +63 -0
  16. hvplot/plotting/andrews_curves.py +99 -0
  17. hvplot/plotting/core.py +2288 -0
  18. hvplot/plotting/lag_plot.py +34 -0
  19. hvplot/plotting/parallel_coordinates.py +85 -0
  20. hvplot/plotting/scatter_matrix.py +220 -0
  21. hvplot/polars.py +21 -0
  22. hvplot/sample_data.py +30 -0
  23. hvplot/streamz.py +21 -0
  24. hvplot/tests/__init__.py +0 -0
  25. hvplot/tests/conftest.py +44 -0
  26. hvplot/tests/data/README.md +5 -0
  27. hvplot/tests/data/RGB-red.byte.tif +0 -0
  28. hvplot/tests/plotting/__init__.py +0 -0
  29. hvplot/tests/plotting/testcore.py +108 -0
  30. hvplot/tests/plotting/testohlc.py +34 -0
  31. hvplot/tests/plotting/testscattermatrix.py +138 -0
  32. hvplot/tests/test_links.py +99 -0
  33. hvplot/tests/testbackend_transforms.py +89 -0
  34. hvplot/tests/testcharts.py +452 -0
  35. hvplot/tests/testfugue.py +46 -0
  36. hvplot/tests/testgeo.py +468 -0
  37. hvplot/tests/testgeowithoutgv.py +60 -0
  38. hvplot/tests/testgridplots.py +259 -0
  39. hvplot/tests/testhelp.py +75 -0
  40. hvplot/tests/testibis.py +17 -0
  41. hvplot/tests/testinteractive.py +1442 -0
  42. hvplot/tests/testnetworkx.py +26 -0
  43. hvplot/tests/testoperations.py +385 -0
  44. hvplot/tests/testoptions.py +596 -0
  45. hvplot/tests/testoverrides.py +74 -0
  46. hvplot/tests/testpanel.py +70 -0
  47. hvplot/tests/testpatch.py +135 -0
  48. hvplot/tests/testplotting.py +69 -0
  49. hvplot/tests/teststreaming.py +28 -0
  50. hvplot/tests/testtransforms.py +39 -0
  51. hvplot/tests/testui.py +383 -0
  52. hvplot/tests/testutil.py +378 -0
  53. hvplot/tests/util.py +82 -0
  54. hvplot/ui.py +1032 -0
  55. hvplot/util.py +677 -0
  56. hvplot/utilities.py +129 -0
  57. hvplot/xarray.py +62 -0
  58. hvplot-0.9.3a1.dist-info/LICENSE +29 -0
  59. hvplot-0.9.3a1.dist-info/METADATA +243 -0
  60. hvplot-0.9.3a1.dist-info/RECORD +63 -0
  61. hvplot-0.9.3a1.dist-info/WHEEL +5 -0
  62. hvplot-0.9.3a1.dist-info/entry_points.txt +2 -0
  63. hvplot-0.9.3a1.dist-info/top_level.txt +1 -0
hvplot/utilities.py ADDED
@@ -0,0 +1,129 @@
1
+ import panel as _pn
2
+ import param
3
+ import holoviews as _hv
4
+
5
+ renderer = _hv.renderer('bokeh')
6
+
7
+ output = _hv.output
8
+
9
+
10
+ def save(
11
+ obj, filename, fmt='auto', backend=None, resources='cdn', toolbar=None, title=None, **kwargs
12
+ ):
13
+ """
14
+ Saves the supplied object to file.
15
+
16
+ This function delegates saving to `holoviews.util.save` when the
17
+ object is a HoloViews element, which is the type of object mostly
18
+ created by hvPlot. This function inherits the same signature and
19
+ docstring below. However, in some cases hvPlot creates Panel objects,
20
+ in which case saving is delegated to the method `panel.io.Viewable.save`.
21
+ It shares a few common parameters with `holoviews.util.save`, and extra
22
+ parameters can be passed as kwargs.
23
+
24
+ The available output formats depend on the backend being used. By
25
+ default and if the filename is a string the output format will be
26
+ inferred from the file extension. Otherwise an explicit format
27
+ will need to be specified. For ambiguous file extensions such as
28
+ html it may be necessary to specify an explicit fmt to override
29
+ the default, e.g. in the case of 'html' output the widgets will
30
+ default to fmt='widgets', which may be changed to scrubber widgets
31
+ using fmt='scrubber'.
32
+
33
+ Arguments
34
+ ---------
35
+ obj: HoloViews object
36
+ The HoloViews object to save to file
37
+ filename: string or IO object
38
+ The filename or BytesIO/StringIO object to save to
39
+ fmt: string
40
+ The format to save the object as, e.g. png, svg, html, or gif
41
+ and if widgets are desired either 'widgets' or 'scrubber'
42
+ backend: string
43
+ A valid HoloViews rendering backend, e.g. bokeh or matplotlib
44
+ resources: string or bokeh.resource.Resources
45
+ Bokeh resources used to load bokehJS components. Defaults to
46
+ CDN, to embed resources inline for offline usage use 'inline'
47
+ or bokeh.resources.INLINE.
48
+ toolbar: bool or None
49
+ Whether to include toolbars in the exported plot. If None,
50
+ display the toolbar unless fmt is `png` and backend is `bokeh`.
51
+ If `True`, always include the toolbar. If `False`, do not include the
52
+ toolbar.
53
+ title: string
54
+ Custom title for exported HTML file
55
+ **kwargs: dict
56
+ Additional keyword arguments passed to the renderer,
57
+ e.g. fps for animations
58
+ """
59
+ if isinstance(obj, _hv.core.Dimensioned):
60
+ _hv.save(
61
+ obj,
62
+ filename,
63
+ fmt=fmt,
64
+ backend=backend,
65
+ resources=resources,
66
+ toolbar=toolbar,
67
+ title=title,
68
+ **kwargs,
69
+ )
70
+ elif isinstance(obj, _pn.layout.Panel):
71
+ obj.save(filename, resources=resources, title=title, **kwargs)
72
+ else:
73
+ raise TypeError(f'Saving not supported for objects of type {type(obj)!r}')
74
+
75
+
76
+ def show(obj, title=None, port=0, **kwargs):
77
+ """
78
+ Displays hvplot plots in and outside the notebook
79
+
80
+ Parameters
81
+ ----------
82
+ obj : HoloViews/Panel object
83
+ HoloViews/Panel object to show
84
+ title : str
85
+ A string title to give the Document (if served as an app)
86
+ port: int (optional, default=0)
87
+ Allows specifying a specific port
88
+ **kwargs: dict
89
+ Additional keyword arguments passed to Panel show method.
90
+ Returns
91
+ -------
92
+ a panel.io.server.Server | panel.io.server.StoppableThread (if threaded=true)
93
+ """
94
+ if isinstance(obj, _hv.core.Dimensioned):
95
+ return _pn.pane.HoloViews(obj).show(title, port, **kwargs)
96
+ elif isinstance(obj, _pn.viewable.Viewable):
97
+ return obj.show(title, port, **kwargs)
98
+ else:
99
+ raise ValueError('%s type object not recognized and cannot be shown.' % type(obj).__name__)
100
+
101
+
102
+ class hvplot_extension(_hv.extension):
103
+ compatibility = param.ObjectSelector(
104
+ allow_None=True,
105
+ objects=['bokeh', 'matplotlib', 'plotly'],
106
+ doc="""
107
+ Plotting library used to process extra keyword arguments.""",
108
+ )
109
+
110
+ logo = param.Boolean(default=False)
111
+
112
+ def __call__(self, *args, **params):
113
+ # importing e.g. hvplot.pandas always loads the bokeh extension.
114
+ # so hvplot.extension('matplotlib', compatibility='bokeh') doesn't
115
+ # require the user or the code to explicitly load bokeh.
116
+ compatibility = params.pop('compatibility', None)
117
+ super().__call__(*args, **params)
118
+ backend = _hv.Store.current_backend
119
+ if compatibility in ['matplotlib', 'plotly'] and backend != compatibility:
120
+ param.main.param.warning(
121
+ f'Compatibility from {compatibility} to {backend} '
122
+ 'not yet implemented. Defaults to bokeh.'
123
+ )
124
+ hvplot_extension.compatibility = compatibility
125
+ # Patch or re-patch the docstrings/signatures to display
126
+ # the right styling options.
127
+ from . import _patch_hvplot_docstrings
128
+
129
+ _patch_hvplot_docstrings()
hvplot/xarray.py ADDED
@@ -0,0 +1,62 @@
1
+ import xarray as xr
2
+
3
+ from panel.widgets import Widget
4
+
5
+ from .interactive import Interactive
6
+
7
+
8
+ class XArrayInteractive(Interactive):
9
+ @classmethod
10
+ def applies(cls, obj):
11
+ return isinstance(obj, (xr.DataArray, xr.Dataset))
12
+
13
+ def sel(self, **kwargs):
14
+ processed = {}
15
+ for k, v in kwargs.items():
16
+ if isinstance(v, type) and issubclass(v, Widget):
17
+ if hasattr(v, 'end'):
18
+ values = self._current[k].values
19
+ v = v(name=k, start=values.min(), end=values.max())
20
+ if hasattr(v, 'options'):
21
+ v = v(name=k, options={str(v): v for v in self._current[k].values})
22
+ processed[k] = v
23
+ self._method = 'sel'
24
+ return self.__call__(**processed)
25
+
26
+ sel.__doc__ = xr.DataArray.sel.__doc__
27
+
28
+ def isel(self, **kwargs):
29
+ processed = {}
30
+ for k, v in kwargs.items():
31
+ if isinstance(v, type) and issubclass(v, Widget):
32
+ if hasattr(v, 'end'):
33
+ v = v(name=k, end=len(self._current[k]))
34
+ processed[k] = v
35
+ self._method = 'isel'
36
+ return self.__call__(**processed)
37
+
38
+ isel.__doc__ = xr.DataArray.isel.__doc__
39
+
40
+
41
+ def patch(name='hvplot', interactive='interactive', extension='bokeh', logo=False):
42
+ from . import hvPlot, post_patch
43
+
44
+ try:
45
+ import xarray as xr
46
+ except ImportError:
47
+ raise ImportError(
48
+ 'Could not patch plotting API onto xarray. xarray could not be imported.'
49
+ )
50
+
51
+ # Remove the class docstring as it very developer focused
52
+ XArrayInteractive.__doc__ = ''
53
+
54
+ xr.register_dataset_accessor(name)(hvPlot)
55
+ xr.register_dataarray_accessor(name)(hvPlot)
56
+ xr.register_dataset_accessor(interactive)(XArrayInteractive)
57
+ xr.register_dataarray_accessor(interactive)(XArrayInteractive)
58
+
59
+ post_patch(extension, logo)
60
+
61
+
62
+ patch()
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2018, HoloViz
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ * Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,243 @@
1
+ Metadata-Version: 2.1
2
+ Name: hvplot
3
+ Version: 0.9.3a1
4
+ Summary: A high-level plotting API for the PyData ecosystem built on HoloViews.
5
+ Author-email: Philipp Rudiger <developers@holoviz.org>
6
+ Maintainer-email: HoloViz developers <developers@holoviz.org>
7
+ License: BSD
8
+ Project-URL: Homepage, https://hvplot.holoviz.org
9
+ Project-URL: Source, http://github.com/holoviz/hvplot
10
+ Project-URL: HoloViz, https://holoviz.org/
11
+ Classifier: License :: OSI Approved :: BSD License
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Intended Audience :: Science/Research
20
+ Classifier: Intended Audience :: Developers
21
+ Classifier: Natural Language :: English
22
+ Classifier: Topic :: Scientific/Engineering
23
+ Classifier: Topic :: Software Development :: Libraries
24
+ Requires-Python: >=3.8
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Requires-Dist: bokeh >=1.0.0
28
+ Requires-Dist: colorcet >=2
29
+ Requires-Dist: holoviews >=1.11.0
30
+ Requires-Dist: numpy >=1.15
31
+ Requires-Dist: packaging
32
+ Requires-Dist: pandas
33
+ Requires-Dist: panel >=0.11.0
34
+ Requires-Dist: param <3.0,>=1.12.0
35
+ Provides-Extra: doc
36
+ Requires-Dist: hvplot[examples] ; extra == 'doc'
37
+ Requires-Dist: nbsite >=0.8.4 ; extra == 'doc'
38
+ Requires-Dist: sphinxext-rediraffe ; extra == 'doc'
39
+ Provides-Extra: examples
40
+ Requires-Dist: dask[dataframe] >=2021.3.0 ; extra == 'examples'
41
+ Requires-Dist: datashader >=0.6.5 ; extra == 'examples'
42
+ Requires-Dist: fugue ; extra == 'examples'
43
+ Requires-Dist: ibis-framework[duckdb] ; extra == 'examples'
44
+ Requires-Dist: intake-parquet >=0.2.3 ; extra == 'examples'
45
+ Requires-Dist: intake-xarray >=0.5.0 ; extra == 'examples'
46
+ Requires-Dist: intake <2.0.0,>=0.6.5 ; extra == 'examples'
47
+ Requires-Dist: ipywidgets ; extra == 'examples'
48
+ Requires-Dist: networkx >=2.6.3 ; extra == 'examples'
49
+ Requires-Dist: matplotlib ; extra == 'examples'
50
+ Requires-Dist: notebook >=5.4 ; extra == 'examples'
51
+ Requires-Dist: numba >=0.51.0 ; extra == 'examples'
52
+ Requires-Dist: pillow >=8.2.0 ; extra == 'examples'
53
+ Requires-Dist: plotly ; extra == 'examples'
54
+ Requires-Dist: polars ; extra == 'examples'
55
+ Requires-Dist: pooch >=1.6.0 ; extra == 'examples'
56
+ Requires-Dist: s3fs >=2022.1.0 ; extra == 'examples'
57
+ Requires-Dist: scikit-image >=0.17.2 ; extra == 'examples'
58
+ Requires-Dist: scipy >=1.5.3 ; extra == 'examples'
59
+ Requires-Dist: selenium >=3.141.0 ; extra == 'examples'
60
+ Requires-Dist: streamz >=0.3.0 ; extra == 'examples'
61
+ Requires-Dist: xarray >=0.18.2 ; extra == 'examples'
62
+ Requires-Dist: xyzservices >=2022.9.0 ; extra == 'examples'
63
+ Requires-Dist: geodatasets >=2023.12.0 ; extra == 'examples'
64
+ Provides-Extra: examples-tests
65
+ Requires-Dist: hvplot[examples] ; extra == 'examples-tests'
66
+ Requires-Dist: hvplot[tests-nb] ; extra == 'examples-tests'
67
+ Provides-Extra: geo
68
+ Requires-Dist: cartopy ; extra == 'geo'
69
+ Requires-Dist: fiona ; extra == 'geo'
70
+ Requires-Dist: geopandas ; extra == 'geo'
71
+ Requires-Dist: geoviews >=1.9.0 ; extra == 'geo'
72
+ Requires-Dist: pyproj ; extra == 'geo'
73
+ Requires-Dist: rasterio ; extra == 'geo'
74
+ Requires-Dist: rioxarray ; extra == 'geo'
75
+ Requires-Dist: spatialpandas >=0.4.3 ; extra == 'geo'
76
+ Provides-Extra: graphviz
77
+ Requires-Dist: pygraphviz ; extra == 'graphviz'
78
+ Provides-Extra: hvdev
79
+ Requires-Dist: colorcet >=0.0.1a1 ; extra == 'hvdev'
80
+ Requires-Dist: datashader >=0.0.1a1 ; extra == 'hvdev'
81
+ Requires-Dist: holoviews >=0.0.1a1 ; extra == 'hvdev'
82
+ Requires-Dist: panel >=0.0.1a1 ; extra == 'hvdev'
83
+ Requires-Dist: param >=0.0.1a1 ; extra == 'hvdev'
84
+ Requires-Dist: pyviz-comms >=0.0.1a1 ; extra == 'hvdev'
85
+ Provides-Extra: hvdev-geo
86
+ Requires-Dist: geoviews >=0.0.1a1 ; extra == 'hvdev-geo'
87
+ Provides-Extra: tests
88
+ Requires-Dist: hvplot[tests-core] ; extra == 'tests'
89
+ Requires-Dist: fugue ; extra == 'tests'
90
+ Requires-Dist: ibis-framework[duckdb] ; extra == 'tests'
91
+ Requires-Dist: polars ; extra == 'tests'
92
+ Provides-Extra: tests-core
93
+ Requires-Dist: dask[dataframe] ; extra == 'tests-core'
94
+ Requires-Dist: ipywidgets ; extra == 'tests-core'
95
+ Requires-Dist: matplotlib ; extra == 'tests-core'
96
+ Requires-Dist: parameterized ; extra == 'tests-core'
97
+ Requires-Dist: plotly ; extra == 'tests-core'
98
+ Requires-Dist: pooch ; extra == 'tests-core'
99
+ Requires-Dist: pre-commit ; extra == 'tests-core'
100
+ Requires-Dist: pytest-cov ; extra == 'tests-core'
101
+ Requires-Dist: pytest ; extra == 'tests-core'
102
+ Requires-Dist: ruff ; extra == 'tests-core'
103
+ Requires-Dist: scipy ; extra == 'tests-core'
104
+ Requires-Dist: xarray ; extra == 'tests-core'
105
+ Provides-Extra: tests-nb
106
+ Requires-Dist: pytest-xdist ; extra == 'tests-nb'
107
+ Requires-Dist: nbval ; extra == 'tests-nb'
108
+
109
+ # 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">
110
+
111
+ | | |
112
+ | --- | --- |
113
+ | Downloads | ![https://pypistats.org/packages/hvplot](https://img.shields.io/pypi/dm/hvplot?label=pypi) ![https://anaconda.org/pyviz/hvplot](https://pyviz.org/_static/cache/hvplot_conda_downloads_badge.svg)
114
+ | Build Status | [![Build Status](https://github.com/holoviz/hvplot/workflows/tests/badge.svg?query=branch%3Amain)](https://github.com/holoviz/hvplot/actions?query=workflow%3Atests+branch%3Amain) |
115
+ | Coverage | [![codecov](https://codecov.io/gh/holoviz/hvplot/branch/main/graph/badge.svg)](https://codecov.io/gh/holoviz/hvplot) |
116
+ | Latest dev release | [![Github tag](https://img.shields.io/github/tag/holoviz/hvplot.svg?label=tag&colorB=11ccbb)](https://github.com/holoviz/hvplot/tags) [![dev-site](https://img.shields.io/website-up-down-green-red/https/holoviz-dev.github.io/hvplot.svg?label=dev%20website)](https://holoviz-dev.github.io/hvplot/) |
117
+ | Latest release | [![Github release](https://img.shields.io/github/release/holoviz/hvplot.svg?label=tag&colorB=11ccbb)](https://github.com/holoviz/hvplot/releases) [![PyPI version](https://img.shields.io/pypi/v/hvplot.svg?colorB=cc77dd)](https://pypi.python.org/pypi/hvplot) [![hvplot version](https://img.shields.io/conda/v/pyviz/hvplot.svg?colorB=4488ff&style=flat)](https://anaconda.org/pyviz/hvplot) [![conda-forge version](https://img.shields.io/conda/v/conda-forge/hvplot.svg?label=conda%7Cconda-forge&colorB=4488ff)](https://anaconda.org/conda-forge/hvplot) [![defaults version](https://img.shields.io/conda/v/anaconda/hvplot.svg?label=conda%7Cdefaults&style=flat&colorB=4488ff)](https://anaconda.org/anaconda/hvplot) |
118
+ | Python | [![Python support](https://img.shields.io/pypi/pyversions/hvplot.svg)](https://pypi.org/project/hvplot/) |
119
+ | Docs | [![gh-pages](https://img.shields.io/github/last-commit/holoviz/hvplot/gh-pages.svg)](https://github.com/holoviz/hvplot/tree/gh-pages) [![site](https://img.shields.io/website-up-down-green-red/http/hvplot.holoviz.org.svg)](https://hvplot.holoviz.org) |
120
+ | 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) |
121
+ | Support | [![Discourse](https://img.shields.io/discourse/status?server=https%3A%2F%2Fdiscourse.holoviz.org)](https://discourse.holoviz.org/c/hvplot/8) |
122
+
123
+ [Home](https://hvplot.holoviz.org/) | [Installation instructions](#installation-instructions) | [Getting Started Guide](https://hvplot.holoviz.org/getting_started/index.html) | [Reference Guides](https://hvplot.holoviz.org/reference/index.html) | [Examples](#examples) | [License](#license) | [Support](#support--feedback)
124
+
125
+ ## hvPlot provides a familiar, high-level API for visualization
126
+
127
+ The API is based on the familiar Pandas `.plot` API and the innovative `.interactive` API.
128
+
129
+ <img src="https://github.com/MarcSkovMadsen/awesome-panel-assets/blob/master/images/hvPlot/hvplot-total-intro.gif?raw=true" style="max-height:600px;border-radius:2%;">
130
+
131
+ ## hvPlot works with the tools you know and love
132
+
133
+ hvPlot
134
+
135
+ - supports a wide range of data sources including [Pandas](http://pandas.pydata.org), [Polars](https://docs.pola.rs/), [XArray](http://xarray.pydata.org), [Dask](http://dask.pydata.org), [Streamz](http://streamz.readthedocs.io), [Intake](http://github.com/ContinuumIO/intake), [GeoPandas](http://geopandas.org) and [NetworkX](https://networkx.github.io/documentation/stable/).
136
+ - supports the plotting backends [Bokeh](https://docs.bokeh.org/en/latest/), [Matplotlib](https://matplotlib.org/) and [Plotly](https://plotly.com/python/).
137
+ - exposes the powerful tools from the [HoloViz](https://holoviz.org/) ecosystem in a familiar and convenient API.
138
+
139
+ [<img src="https://hvplot.holoviz.org/assets/diagram.svg" style="max-height:400px;border-radius:2%;"/>](https://holoviz.org/)
140
+
141
+ hvPlot is **the simplest way to benefit from the [HoloViz](https://holoviz.org/) ecosystem for data exploration**.
142
+
143
+ ## hvPlot can be used for exploration, reporting and data apps
144
+
145
+ Check out [this blog post](https://towardsdatascience.com/the-easiest-way-to-create-an-interactive-dashboard-in-python-77440f2511d1) to see how easy it is to create an interactive dashboard with hvPlot and Panel.
146
+
147
+ <a href="https://towardsdatascience.com/the-easiest-way-to-create-an-interactive-dashboard-in-python-77440f2511d1"><img src="https://miro.medium.com/max/700/1*bZjPtucT8O1esjQaGQenHw.gif" style="max-height:600px;border-radius:2%;"></a>
148
+
149
+ ## Mini getting-started
150
+
151
+ Head over to the [getting started guide](https://hvplot.holoviz.org/getting_started/index.html) for more!
152
+
153
+ ### Install
154
+
155
+ hvPlot can be installed on Linux, Windows, or Mac with ``conda``:
156
+
157
+ ```bash
158
+ conda install hvplot
159
+ ```
160
+
161
+ or with ``pip``:
162
+
163
+ ```bash
164
+ pip install hvplot
165
+ ```
166
+
167
+ Please note that for versions of `jupyterlab<3.0`, you must install the JupyterLab extension manually with:
168
+
169
+ ```bash
170
+ jupyter labextension install @pyviz/jupyterlab_pyviz
171
+ ```
172
+
173
+ ### Plotting data
174
+
175
+ Work with your data source:
176
+
177
+ ```python
178
+ import numpy as np
179
+ import pandas as pd
180
+
181
+ idx = pd.date_range('1/1/2000', periods=1000)
182
+ df = pd.DataFrame(np.random.randn(1000, 4), index=idx, columns=list('ABCD')).cumsum()
183
+ ```
184
+
185
+ Import the hvPlot extension for your data source and optionally set the plotting backend:
186
+
187
+ ```python
188
+ import hvplot.pandas
189
+ # Optional: hvplot.extension('matplotlib') or hvplot.extension('plotly')
190
+ ```
191
+
192
+ Use the `.hvplot` API as you would use the Pandas or Xarray `.plot` API:
193
+
194
+ ```python
195
+ df.hvplot()
196
+ ```
197
+
198
+ [<img src="https://github.com/MarcSkovMadsen/awesome-panel-assets/blob/master/images/hvPlot/hvplot-intro-plot.gif?raw=true" style="max-height:300px;border-radius:2%;">](https://hvplot.holoviz.org/user_guide/index.html)
199
+
200
+
201
+ ### Interactive data apps
202
+
203
+ Just add `.interactive` and replace your normal arguments with [Panel widgets](https://panel.holoviz.org/reference/index.html#widgets) or [Ipywidgets](https://ipywidgets.readthedocs.io/en/stable/examples/Widget%20List.html).
204
+
205
+ ```python
206
+ import panel as pn
207
+ pn.extension()
208
+
209
+ df.interactive(width=600).head(n=pn.widgets.IntSlider(start=1, end=5, value=3))
210
+ ```
211
+
212
+ [<img src="https://github.com/MarcSkovMadsen/awesome-panel-assets/blob/master/images/hvPlot/hvplot-intro-interactive.gif?raw=true" style="max-height:300px;border-radius:2%;">](https://hvplot.holoviz.org/user_guide/Interactive.html)
213
+
214
+ ### How to find documentation from your notebook or editor
215
+
216
+ To see the available arguments for a specific `kind` of plot run
217
+
218
+ ```python
219
+ hvplot.help(kind='scatter')
220
+ ```
221
+
222
+ In a notebook or ipython environment the usual
223
+
224
+ - `help` and `?` will provide you with documentation.
225
+ - `TAB` and `SHIFT+TAB` completion will help you navigate.
226
+
227
+ ## License
228
+
229
+ hvPlot is completely free and open-source. It is licensed under the [BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause).
230
+
231
+ ## Support & Feedback
232
+
233
+ - Usage questions and showcases -> [HoloViz Community](https://holoviz.org/community.html)
234
+ - Bug reports and feature requests -> [Github](https://github.com/holoviz/hvplot)
235
+ - Developer discussions -> [Discord](https://discord.gg/rb6gPXbdAr)
236
+
237
+ For more detail check out the [HoloViz Community Guide](https://holoviz.org/community.html).
238
+
239
+ ## Contributions
240
+
241
+ We would love to work with you no matter whether you want to contribute to issue management, PRs, documentation, blog posts, community support or social media communication.
242
+
243
+ To get started with the code or docs check out the [Developer Guide](https://hvplot.holoviz.org/developer_guide/index.html).
@@ -0,0 +1,63 @@
1
+ hvplot/__init__.py,sha256=l6r24tZQZJsKbqpXzfV5HiTMEnGdp7N3N8C3k2lc7DA,10893
2
+ hvplot/_version.py,sha256=mna1Alkqx4bNCQ0EHtPZqWCVM3SgevtIDPV81vj5NEA,413
3
+ hvplot/backend_transforms.py,sha256=BAOvIa2kLngutGIfHCAre7K2DnJqVlrzGCbDs1ev2G0,10874
4
+ hvplot/converter.py,sha256=r80UsZ2ypBUcfBu3ZQAfnZF4jcGImxavKFHsxCIdR-k,109238
5
+ hvplot/cudf.py,sha256=EJBmePEPdEX1pcMAM6TTNqU-W4pfcihKR-TdIt1_P1I,908
6
+ hvplot/dask.py,sha256=4XkhF1Jrd9ZkvRHEKvDjE5E2plExwnFWHvPTj2YwyBg,1274
7
+ hvplot/datasets.yaml,sha256=eo03dYLejYdIaLDEwKjbJrDhz_19tWavKo_LIbHuv8Y,1367
8
+ hvplot/fugue.py,sha256=A21kWrtLQ_oyZVm0v-ii5o3EcVQytb4f1FRCfGj28Yk,1903
9
+ hvplot/ibis.py,sha256=Iosa591I0uBAbAM5F4ysGyXeuJ9HI0xU4I8QNjKraA0,546
10
+ hvplot/intake.py,sha256=mb2diSdNukJ7ITY-6BkH1DsfWihBT_Jauo49sI8Av1s,809
11
+ hvplot/interactive.py,sha256=SVQK23S8kFsZZ4V5XPAGBonNXahdtiyCChjAJiPHyjM,37370
12
+ hvplot/networkx.py,sha256=HkwrGCeK-EBg7RzBaakLPuSp4WPE5AgkVPGs_FArK1U,21430
13
+ hvplot/pandas.py,sha256=NXufDc40TYH4p5UsiHeGwZX_y5AqDtEFoP_BZEM-6BQ,997
14
+ hvplot/polars.py,sha256=KyzbiyeJQps15qUnzGe8v809tDvN5CuSv0iANwy3H0Q,644
15
+ hvplot/sample_data.py,sha256=Ulcrqbd-21pf-qyOBVhavZqHSvenLJG7sl558qRb8Ps,722
16
+ hvplot/streamz.py,sha256=BJZYHmoPwpRkRySOCWsgzgC-c6-MxGFsJrY65a3zVnI,700
17
+ hvplot/ui.py,sha256=p4eF0YLAp-n_r8FL6Bbz9wcKJwV2oIKmDcZMWcotRnY,32967
18
+ hvplot/util.py,sha256=BNYCUd330UtsrWlrpkOQdCpd9mWWlAU63Erk5DHOWGA,19694
19
+ hvplot/utilities.py,sha256=haAdX9o7d9wjvBhEnv4vsdNMxQ05RKp9pvkNMa3UWoI,4926
20
+ hvplot/xarray.py,sha256=sxc9md_4CosjLumCdcz7dqrlsKvHWXSZiR9RHQ9NOHk,1899
21
+ hvplot/data/crime.csv,sha256=NrklsXzG9S6-O9kfO9YukfMiJPgJ44VC5RiDL1m04EA,7871
22
+ hvplot/plotting/__init__.py,sha256=tozGKUokoXhNHXSbDE1Hx1s3fEJ0VcPYzYm2At3rS-8,1796
23
+ hvplot/plotting/andrews_curves.py,sha256=4e2NF1NPr6-My2YqsWg0zRGUTJvA6XeFFfd1vb4Oqvs,2846
24
+ hvplot/plotting/core.py,sha256=dlxzxiBMgmBOTbFKP8k3jfz2RTLofG0pizQqoRcbN9Q,80862
25
+ hvplot/plotting/lag_plot.py,sha256=oxTMub-gobouTA2v59fSEjeBMtsf74BeUFveUKDG7UY,936
26
+ hvplot/plotting/parallel_coordinates.py,sha256=NG1gxv0pCis0DY1X3RZMGbzfKtt8Dltrwg2QF3sV0To,2523
27
+ hvplot/plotting/scatter_matrix.py,sha256=iw33OfCtn4mAO_inaYgmCwtO0MGeBdf7y1aHtSOAkK0,8478
28
+ hvplot/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ hvplot/tests/conftest.py,sha256=s_c9TB4AdvWNoua4JYYpsQgBtzM0tMuqD3CXu9sCjzs,1340
30
+ hvplot/tests/test_links.py,sha256=cttoz9eB-23HUXqn5JX7T70Q5LgWp1PnUSx51Z0qmIk,3038
31
+ hvplot/tests/testbackend_transforms.py,sha256=IVgrhkheP3pVmowdEyUh9n5tLa6k-L3mP6y74ilnwDE,3196
32
+ hvplot/tests/testcharts.py,sha256=ZESJxLaad31rpK09QsleJKrbo67P0xrtio3GKTJIMVk,19435
33
+ hvplot/tests/testfugue.py,sha256=wvOkmU6TJXaLNt0RirW1WLuNjnCyRMXvMwg4EZPRx0c,1008
34
+ hvplot/tests/testgeo.py,sha256=7XPyBJlZZMpWJcLWpQKGWAaCm4lYZOOUo4DPU0W0v9M,18380
35
+ hvplot/tests/testgeowithoutgv.py,sha256=wp8JaRPxgNOkFOr6HpCXVnu54eMa6E9peFqlA0EZrBQ,2207
36
+ hvplot/tests/testgridplots.py,sha256=6cfTHa1Vwzq_vhSfAo0BFcphuHJ6_b8m5CzFqqggWk8,11934
37
+ hvplot/tests/testhelp.py,sha256=6IrClFA5Lk121-ODoaryh8GbsI5992NhgRp9I0sE-eQ,2215
38
+ hvplot/tests/testibis.py,sha256=ofdHbuYdfLIxWu_hvoQnzzcxeUfDttwaOz_u18_q_Rs,317
39
+ hvplot/tests/testinteractive.py,sha256=WPNROZvBP0vo9LbIyLaIX6gL58oB156fFXpxTp-RH1E,42090
40
+ hvplot/tests/testnetworkx.py,sha256=kXzWp7RLwbSJV1_PGjENCIQj6AUMchBhmX8tSfysRfo,677
41
+ hvplot/tests/testoperations.py,sha256=pZJ4QfX9PFCIeaHNzhMANoWGBgYquxMPrR_jjINTd8s,16898
42
+ hvplot/tests/testoptions.py,sha256=l9pL297qjlTqYBdxwNgY3Id65ZDmupArF_P5JGSyuwc,23430
43
+ hvplot/tests/testoverrides.py,sha256=-DX-dyE8E13zCmn3qzara53AfDG8BsLWFf2kiKc50IQ,3081
44
+ hvplot/tests/testpanel.py,sha256=yabXqJpuxtHPfK_04xGZoA5gvjJkYKBUVNEEckkLGNU,2309
45
+ hvplot/tests/testpatch.py,sha256=BkECM9qbu_mNUow79R5X-hgpLpxAiK3xyOeV3G58xAc,3964
46
+ hvplot/tests/testplotting.py,sha256=BLnqm1OVZ8g7qAg_ic9M0U-WklxX8g2IOPVRgZcCoUc,2415
47
+ hvplot/tests/teststreaming.py,sha256=hMPNSkH4hZXD9bg9j3q1TiC5TqhF3nD8hu_sB_j2H80,1004
48
+ hvplot/tests/testtransforms.py,sha256=qzlRWasJC9FLNdQVaWIwILyTPhv9yRFsIfbqzqdNA8A,1301
49
+ hvplot/tests/testui.py,sha256=74gKsYBEufon0nY3aAdkuy1DBrASzaZVaAm-Jrd26Sk,10324
50
+ hvplot/tests/testutil.py,sha256=eB9FFAzWSut9TYgFv_oKa5gjQxbChcGfZbGL0kdpHpk,14185
51
+ hvplot/tests/util.py,sha256=IVMsDjDcNANRwbfIM8sqEQFqsbILO3CdLeuNGp2hfQ8,1944
52
+ hvplot/tests/data/README.md,sha256=IdlndhYTKXlJ6JzvinpPKAIthsnVFQFk3PlWN2Q1VoM,391
53
+ hvplot/tests/data/RGB-red.byte.tif,sha256=b21fGiXCVjWJW-Ga1oBtxYq_Y_HtPF0Uk2wws-0vhII,17612
54
+ hvplot/tests/plotting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
+ hvplot/tests/plotting/testcore.py,sha256=LgmKgruheQXRo4a6Mp35XEvvwJARupunQIn1SIK6x9s,2868
56
+ hvplot/tests/plotting/testohlc.py,sha256=qng7FUoRF6eQ4sYMFjuCm-O4LWTAYHgWeASAdmut0Yg,1072
57
+ hvplot/tests/plotting/testscattermatrix.py,sha256=NPT22qwY9Cg5oh1Xj6Xi7QcXtg27xy9vqURU5Wyj2AM,5137
58
+ hvplot-0.9.3a1.dist-info/LICENSE,sha256=Pe8ZKnV3pVo3M5XCJWvGGhnfwDpaAD4JH9uSNM6HUos,1507
59
+ hvplot-0.9.3a1.dist-info/METADATA,sha256=cNaIpqBdP8raiTcuIFqHQBdm-voZejNC7TdnibqDlFM,14774
60
+ hvplot-0.9.3a1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
61
+ hvplot-0.9.3a1.dist-info/entry_points.txt,sha256=TVVqvGMCToNPLci8ALL_pXbMTDAvAWW_g-SvIhdGpTA,55
62
+ hvplot-0.9.3a1.dist-info/top_level.txt,sha256=yeYAGDRH2qq2KpSRrcS0xS51c1TLngurXMfiqLUOILo,7
63
+ hvplot-0.9.3a1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bdist_wheel (0.43.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [pandas_plotting_backends]
2
+ holoviews = hvplot:plotting
@@ -0,0 +1 @@
1
+ hvplot