id,node_id,number,state,locked,title,user,body,created_at,updated_at,closed_at,merged_at,merge_commit_sha,assignee,milestone,draft,head,base,author_association,auto_merge,repo,url,merged_by 186228633,MDExOlB1bGxSZXF1ZXN0MTg2MjI4NjMz,2107,closed,0,ENH: added FacetGrid functionality to line plots,6164157," closes #2084 a) plot.line can now accept also 'row' and 'col' keywords. b) If 'hue' is passed as a keyword to DataArray.plot() it generates a line plot FacetGrid. c) Line plots are automatically generated if the number of dimensions after faceting along row and/or col is one. - [x] Closes #xxxx (remove if there is no corresponding issue, which should only be the case for minor changes) - [x] Tests added (for all bug fixes or enhancements) - [x] Tests passed (for all non-documentation changes) - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API (remove if this change should not be visible to users, e.g., if it is an internal clean-up, or if this is part of a larger project that will be documented later) ",2018-05-06T21:56:54Z,2022-11-16T14:36:56Z,2018-06-04T15:54:45Z,2018-06-04T15:54:45Z,bc52f8aa64833d8c97f9ef5253b6a78c7033f521,,,0,bace204776f853c6e1a69ca95074648fba548a1f,69c9c45bf7a9d572200c4649605a5875e96b650c,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/2107, 198318149,MDExOlB1bGxSZXF1ZXN0MTk4MzE4MTQ5,2258,closed,0,BUG: unnamed args in faceted line plots,6164157," - [x] Closes #2248 (remove if there is no corresponding issue, which should only be the case for minor changes) - [x] Tests added (for all bug fixes or enhancements) - [x] Tests passed (for all non-documentation changes) Fixed a syntax inconsistency, allowing to pass unnamed arguments to faceted line plots. ```python Example code: import xarray as xr import numpy as np np.random.seed(0) da = xr.DataArray(np.random.randn(3, 3, 3, 3), dims=['x', 'y', 'z', 'w'], coords=[range(3), [3.5, 4.9, 6.7], ['a','b','c'], ['foo', 'bar', 'foobar']], name='arr_name') da.plot.line('o--',row='y', col='w',hue='z') ``` ![sdojn](https://user-images.githubusercontent.com/6164157/42094867-0cde3d8e-7b7f-11e8-91e5-a9a9156955f4.png) ",2018-06-29T13:30:54Z,2018-06-29T14:00:47Z,2018-06-29T13:59:12Z,,59ae8e48776efd3ca7d42b398d70b8fff99ce9be,,,0,cac5034b31283cc3be577cb6b530dec401203000,04a78d50a928f4af2efc4e1d19370c76d822dbb6,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/2258, 198330151,MDExOlB1bGxSZXF1ZXN0MTk4MzMwMTUx,2259,closed,0,BUG: unnamed args in faceted line plots,6164157,"- [x] Closes #2248 (remove if there is no corresponding issue, which should only be the case for minor changes) - [x] Tests added (for all bug fixes or enhancements) - [x] Tests passed (for all non-documentation changes) Fixed a syntax inconsistency, allowing to pass unnamed arguments to faceted line plots. Example code: ```python import xarray as xr import numpy as np np.random.seed(0) da = xr.DataArray(np.random.randn(3, 3, 3, 3), dims=['x', 'y', 'z', 'w'], coords=[range(3), [3.5, 4.9, 6.7], ['a','b','c'], ['foo', 'bar', 'foobar']], name='arr_name') da.plot.line('o--',row='y', col='w',hue='z') ``` ![sdojn](https://user-images.githubusercontent.com/6164157/42094867-0cde3d8e-7b7f-11e8-91e5-a9a9156955f4.png) ",2018-06-29T14:14:02Z,2019-02-05T15:52:42Z,2018-07-04T17:06:55Z,2018-07-04T17:06:54Z,63cc96484270dee83e92391e49ad76b8ef3b40b3,,,0,3b1d1477c18b7751c338aa3747624ccebc6fc64e,04a78d50a928f4af2efc4e1d19370c76d822dbb6,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/2259, 200571225,MDExOlB1bGxSZXF1ZXN0MjAwNTcxMjI1,2277,closed,0,ENH: Scatter plots of one variable vs another,6164157," - [x] Closes #470 - [x] Tests added (for all bug fixes or enhancements) - [x] Tests passed (for all non-documentation changes) - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API - [x] Add support for `size`? - [x] Revert hue=datetime support bits Say you have two variables in a `Dataset` and you want to make a scatter plot of one vs the other, possibly using different hues and/or faceting. This is useful if you want to inspect the data to see whether two variables have some underlying relationships between them that you might have missed. It's something that I found myself manually writing the code for quite a few times, so I thought it would be better to have it as a feature. I'm not sure if this is actually useful for other people, but I have the feeling that it probably is. First, set up dataset with two variables: ```python import xarray as xr import numpy as np import matplotlib from matplotlib import pyplot as plt A = xr.DataArray(np.zeros([3, 11, 4, 4]), dims=[ 'x', 'y', 'z', 'w'], coords=[np.arange(3), np.linspace(0,1,11), np.arange(4), 0.1*np.random.randn(4)]) B = 0.1*A.x**2+A.y**2.5+0.1*A.z*A.w A = -0.1*A.x+A.y/(5+A.z)+A.w ds = xr.Dataset({'A':A, 'B':B}) ds['w'] = ['one', 'two', 'three', 'five'] ``` Now, we can plot all values of `A` vs all values of `B`: ```python plt.plot(A.values.flat,B.values.flat,'.') ``` ![a](https://user-images.githubusercontent.com/6164157/42546655-4cce84d8-848c-11e8-8ae0-9249e04137bd.png) What a mess. Wouldn't it be nice if you could color each point according to the value of some coordinate, say `w`? ```python ds.scatter(x='A',y='B', hue='w') ``` ![a](https://user-images.githubusercontent.com/6164157/42546725-9810e4c2-848c-11e8-827d-ae98c57f0ad0.png) Huh! There seems to be some underlying structure there. Can we also facet over a different coordinate? ```python ds.scatter(x='A',y='B',col='x', hue='w') ``` ![a](https://user-images.githubusercontent.com/6164157/42546773-d590caf6-848c-11e8-8095-06216f138a95.png) or two coordinates? ```python ds.scatter(x='A',y='B',col='x', row='z', hue='w') ``` ![a](https://user-images.githubusercontent.com/6164157/42546775-e07a8b96-848c-11e8-98f2-8a05d543b54a.png) The logic is that dimensions that are not faceted/hue are just stacked using `xr.stack` and plotted. Only variables that have exactly the same dimensions are allowed. Regarding implementation -- I am certainly not sure about the API and I probably haven't thought about edge cases with missing data or nans or whatnot, so any input would be welcome. Also, there might be a simpler implementation by first using `to_array` and then using existing line plot functions, but I couldn't find it. ",2018-07-11T02:31:01Z,2019-08-08T18:05:00Z,2019-08-08T15:57:17Z,2019-08-08T15:57:17Z,f172c6738ae4bc9802e08d355ea05ea6c47527ab,,,0,d56f7d13c9b82afbbe63734448e3594bfd06c940,8a9c4710b2ee389a41e08a665108aca05ef02544,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/2277, 202051472,MDExOlB1bGxSZXF1ZXN0MjAyMDUxNDcy,2296,closed,0,DOC: replace broken link by a link to @shoyer's personal blog,6164157,"Closes #2295 (remove if there is no corresponding issue, which should only be the case for minor changes) ",2018-07-17T19:55:21Z,2018-07-17T20:01:34Z,2018-07-17T20:01:28Z,2018-07-17T20:01:28Z,df63fce69b9cde68689362895ec394df75335313,,,0,dd547c72998d9837d631fba2cfed2df2a0ec5ce7,afee350789cacecc689c63fe580c98025e29d3db,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/2296, 250978755,MDExOlB1bGxSZXF1ZXN0MjUwOTc4NzU1,2749,closed,0,Fix name loss when masking,6164157," - [x] Closes #2457 #2748 - [x] Tests added - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API I took a simple-minded strategy to fix: just mask and then rename the result to `self.name`. This is a slight overkill since the renaming will be done on every masking, not just on the edge cases when it's needed, but this is really a very small computational cost and it's much easier and bulletproof.",2019-02-07T02:59:45Z,2019-02-12T01:46:51Z,2019-02-11T17:35:03Z,2019-02-11T17:35:02Z,07cfc5a884fea41426761c634d74d2f5de53db86,,,0,3a5967650559920518562c32652e76c5fcc2c21f,6d2076688d4f5466cf77ace2b196e910c1c0fbb8,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/2749, 252320508,MDExOlB1bGxSZXF1ZXN0MjUyMzIwNTA4,2763,closed,0,typo in whats_new,6164157,just a small typo,2019-02-12T13:44:42Z,2019-02-12T17:41:54Z,2019-02-12T17:41:54Z,2019-02-12T17:41:54Z,17fa64f5314aa898f262a73fdc00d228ec380968,,,0,c9c75b27f6302924674ce494be2f29064f93f1f3,2089382ebe5828eeefe0590e28fd3a54156e69d0,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/2763, 291980553,MDExOlB1bGxSZXF1ZXN0MjkxOTgwNTUz,3046,closed,0,typo in whats-new,6164157,Small typo.,2019-06-26T13:07:47Z,2019-06-26T16:29:15Z,2019-06-26T15:35:52Z,2019-06-26T15:35:52Z,9728e89cdfd4afb9a0d79bae79a60021514df6b2,,,0,1f2f86dc80dc2d7e1f3fbd2dbad5d2cd3386c8cd,17d18ce8230fea74e72ad59b84386cf662448d45,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/3046, 292842989,MDExOlB1bGxSZXF1ZXN0MjkyODQyOTg5,3054,closed,0,Flat iteration over DataArray,6164157," - [ ] Tests added - [ ] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API A very simple way to iterate over `DataArray`s, imitating numpy's flat iterator. For a DataArray `da`, I implemented a flat iterator that works exactly like `da.values.flat`, but returns a singelton `DataArray` that has all the coordinates and meta data and whatnot. I wrote it because I needed it for something and thought it would be useful for others too. I'd love to hear your opinions - if you think it's useful I'll write up some unittests. ",2019-06-28T14:00:24Z,2021-06-17T16:16:50Z,2021-06-17T16:16:50Z,,49f4c332a931670dc977afcda064759bdbca2ee1,,,0,ea607d19706838fdab4f8d9ad44a9bdb0296c139,7bf9df9d75c40bcbf2dd28c47204529a76561a3f,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/3054, 359459672,MDExOlB1bGxSZXF1ZXN0MzU5NDU5Njcy,3663,closed,0,Typo in Universal Functions section,6164157," - [ ] Closes #xxxx - [ ] Tests added - [ ] Passes `black . && mypy . && flake8` - [ ] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API ",2020-01-06T09:22:25Z,2020-01-06T11:41:51Z,2020-01-06T11:41:42Z,2020-01-06T11:41:42Z,8408036f3c9bf9b2db2b91839e1fc026d03a6fd1,,,0,ade0eb610e06b850a9547a7ec4e082b72c69069c,0ef9aa3abae55833e4431d690bc55c5b5a44911b,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/3663, 441923831,MDExOlB1bGxSZXF1ZXN0NDQxOTIzODMx,4188,closed,0,Fix typo in error message in plot.py,6164157,Fix typo in error message in plot.py,2020-06-30T10:08:26Z,2020-06-30T11:35:21Z,2020-06-30T11:35:21Z,2020-06-30T11:35:21Z,54b9450b9b9b1805831b2a891dbf7aa321583096,,,0,9aba92ce4a9596d3f68f71f632d847b99fd5744b,bdcfab524ef1c852abe6dabcfabc7292f058fddc,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/4188,