html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/issues/3709#issuecomment-962150839,https://api.github.com/repos/pydata/xarray/issues/3709,962150839,IC_kwDOAMm_X845WUG3,1695496,2021-11-05T19:14:45Z,2021-11-05T19:14:45Z,CONTRIBUTOR,"I'm not sure if this link will expire, but until it's on youtube, you can watch the talk at https://zoom.us/rec/play/DzaWjz_hMBP23Vqv7T5jPcY1zU4fps2ZL-yAi8MyM5-lbYq-ZQS4ejWMzwxRW53vGu2F1DybYiKSb8M.mYwmkdDSK6ECc8Ux?startTime=1635508803000&_x_zm_rtaid=hMxhM6kwS-ae1hLStT7UXA.1635955310424.1ade0b45b8e3297ff743d3acc0aa08e1&_x_zm_rhtaid=397","{""total_count"": 3, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 2, ""rocket"": 0, ""eyes"": 0}",,552500673 https://github.com/pydata/xarray/issues/3709#issuecomment-888642498,https://api.github.com/repos/pydata/xarray/issues/3709,888642498,IC_kwDOAMm_X84095vC,1695496,2021-07-28T21:45:51Z,2021-07-28T21:45:51Z,CONTRIBUTOR,"Update: hvPlot's .interactive support has been greatly improved and expanded in the new [hvPlot 0.7.3](https://github.com/holoviz/hvplot/releases/tag/v0.7.3) release. It is now showcased at [holoviz.org](https://holoviz.org/tutorial/Interactive_Pipelines.html), which introduces how to use hvPlot to build plots, then how to use xarray .interactive and pandas .interactive to add widgets (whether to hvPlot plots or to anything else, including .plot output or tables or xarray reprs). There are still plenty of improvements to make, but apart from documenting .interactive in xarray's docs, I would think this issue can now be closed.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,552500673 https://github.com/pydata/xarray/issues/3709#issuecomment-747097516,https://api.github.com/repos/pydata/xarray/issues/3709,747097516,MDEyOklzc3VlQ29tbWVudDc0NzA5NzUxNg==,1695496,2020-12-16T23:14:48Z,2020-12-16T23:14:48Z,CONTRIBUTOR,"hvPlot's .interactive() support for xarray and pandas was released in in hvPlot 0.7.0 (installable with `conda install hvplot=0.7`) and is now documented on the [website](https://hvplot.holoviz.org/user_guide/Interactive.html). There are a few things I think we can still improve (listed at https://github.com/holoviz/panel/issues/1824, https://github.com/holoviz/panel/issues/1826, https://github.com/holoviz/hvplot/issues/531, https://github.com/holoviz/hvplot/issues/533), but it's already really fun to use -- just take your xarray or pandas pipeline `da.method1(val1=arg1).method2(val2=arg2,val3=arg3).plot()`, add `.interactive`, and then substitute a Panel widget or ipywidget for any of the arguments: `da.interactive.method1(val1=widget1).method2(val2=arg2,val3=widget2).plot()` You can use this with the native `.plot()` plotting, interactive `.hvplot()` plots, or pretty much anything you can get out of such a pipeline (table, text, etc.). Try it out and let us know how it goes (here, on one of the issues linked above, or in a new issue at https://github.com/holoviz/hvplot/issues)! Thanks for all the suggestions and ideas here...","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,552500673 https://github.com/pydata/xarray/issues/3709#issuecomment-619763437,https://api.github.com/repos/pydata/xarray/issues/3709,619763437,MDEyOklzc3VlQ29tbWVudDYxOTc2MzQzNw==,11289391,2020-04-27T06:42:12Z,2020-04-27T06:42:12Z,CONTRIBUTOR,"That's amazing. This would single-handedly turn xarray from ""nice to have, pretty useful"" to ""I recommend it to all my friends"". I would absolutely love to be able to use it.","{""total_count"": 2, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 2, ""rocket"": 0, ""eyes"": 0}",,552500673 https://github.com/pydata/xarray/issues/3709#issuecomment-619479882,https://api.github.com/repos/pydata/xarray/issues/3709,619479882,MDEyOklzc3VlQ29tbWVudDYxOTQ3OTg4Mg==,1695496,2020-04-26T04:27:54Z,2020-04-26T04:27:54Z,CONTRIBUTOR,That is so cool! I think the syntax is already as good as I can imagine.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,552500673 https://github.com/pydata/xarray/issues/3709#issuecomment-610588306,https://api.github.com/repos/pydata/xarray/issues/3709,610588306,MDEyOklzc3VlQ29tbWVudDYxMDU4ODMwNg==,1695496,2020-04-07T19:53:59Z,2020-04-07T19:53:59Z,CONTRIBUTOR,"Thanks, @philippjfr! What Philipp outlines above addresses the key limitation that I pointed out previously: > The operations available in HoloViews are only a small subset of what can be done with the native Xarray or Pandas APIs, and adding new capability like that to HoloViews is difficult As of HoloViews release 1.13.2 that limitation is now completely gone, because a HoloViews interactive operation pipeline can now invoke arbitrary Xarray or Pandas API calls. So you're no longer limited to what has been encapsulated in HoloViews, and you can use the native Xarray method syntax that you're used to. Thus it's now possible to achieve most (all?) of the functionality discussed above, i.e. easily constructing arbitrarily deep Xarray-method pipelines with interactive widgets controlling any step along the way, replaying only that portion of the pipeline when that widget is changed. So, what's left? As Philipp suggests, we can make the syntax for working with this functionality simpler in hvPlot. At that point we should probably show the syntax required for each of the interactive pipelines demonstrated or suggested in this issue, and see if there's any change to Xarray that would help make the syntax easier or more natural for Xarray users. Either way, the power is now there already! ","{""total_count"": 3, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 3, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,552500673 https://github.com/pydata/xarray/issues/3709#issuecomment-577772787,https://api.github.com/repos/pydata/xarray/issues/3709,577772787,MDEyOklzc3VlQ29tbWVudDU3Nzc3Mjc4Nw==,1695496,2020-01-23T16:58:45Z,2020-01-23T20:09:35Z,CONTRIBUTOR,"> I didn't appreciate exactly how much of this panel/holoviews can already do On the one hand, yes, HoloViews + Panel is quite powerful and clean for what it can already do. But just so everyone is on the same page, the workflow @philippjfr shows above is only possible for the operations that HoloViews has implemented internally. The operations available in HoloViews are only a small subset of what can be done with the native Xarray or Pandas APIs, and adding new capability like that to HoloViews is difficult because HoloViews supports many different underlying data formats (lists, dictionaries, NumPy, Pandas, Xarray, etc.). So while there are advantages to what's already available in HoloViews: - Same syntax for working with a wide variety of data libraries or native Python types - Easy interactive, reactive pipelines (lazy operations that replay on demand) - Native support for multiple plotting libraries there are also major disadvantages: - You have to learn HoloViews syntax for operations you quite likely already know how to do in your data library of choice (Xarray, Pandas, etc.) - The supported operations aren't ever going to be as rich as what's available from individual specific libraries Note that hvPlot injects the plotting capability from HoloViews into Xarray and Pandas, letting you use the native data APIs _for plotting_, but it doesn't give you the control over lazy/interactive/reactive pipelines that HoloViews' native API offers. So to me what this issue's proposal would entail is taking the idea of hvPlot further, making Xarray (and Pandas) natively act like HoloViews already does -- with lazy operations where interactive controls can be inserted at every stage, letting people stay in their preferred rich, native data API while having the power to easily make anything interactive and to easily make anything visualizable. ","{""total_count"": 4, ""+1"": 4, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,552500673 https://github.com/pydata/xarray/issues/3709#issuecomment-577420673,https://api.github.com/repos/pydata/xarray/issues/3709,577420673,MDEyOklzc3VlQ29tbWVudDU3NzQyMDY3Mw==,1695496,2020-01-22T22:42:20Z,2020-01-22T22:42:20Z,CONTRIBUTOR,"> I think the difference between what I'm proposing here and what already exists (e.g. in holoviews, xrviz, etc.) is considering interactivity as something that is useful independent of plotting. The interactive widgets in holoviews and xrviz are obtained from [Panel](https://panel.holoviz.org), which is a separate library that is already explicitly designed for specifying and constructing interactivity independent of plotting. E.g. we often use Panel widgets with no plotting to set up simulations or analyses interactively, then run whatever we specified. The `interactive` function in Panel already works much like what you laid out above, unless I'm missing something. It sounds like you're hoping for something that is independent of plotting (like Panel) and provides interactive widgets (like Panel) but also has specific support for multidimensional arrays (like HoloViews)? I don't think that's much code, but it could be useful to provide for Xarray in a convenient API.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,552500673