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/7401#issuecomment-1385875187,https://api.github.com/repos/pydata/xarray/issues/7401,1385875187,IC_kwDOAMm_X85Smsbz,2448579,2023-01-17T18:46:37Z,2023-01-17T18:47:08Z,MEMBER,"Seems like a good addition to me.
I'm not sure about passing Axes handles. IIRC FacetGrid does call a bunch of Figure methods, so there may be unintended consequences","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1510151748
https://github.com/pydata/xarray/issues/7401#issuecomment-1366550470,https://api.github.com/repos/pydata/xarray/issues/7401,1366550470,IC_kwDOAMm_X85Rc-fG,10194086,2022-12-28T10:36:03Z,2022-12-28T10:36:03Z,MEMBER,"Good point. Combining two `FacetGrids` is a good use case. My intuition would be to allow passing _exactly_ the correct number of axes and not the figure. But then I have not heard from subfigure before now and this may also be a valid option.
```python
f, axs = plt.subplots(2, 4)
da1.plot(col='season', ax=axs[0, :])
da2.plot(col='season', ax=axs[1, :])
```
","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1510151748
https://github.com/pydata/xarray/issues/7401#issuecomment-1364707378,https://api.github.com/repos/pydata/xarray/issues/7401,1364707378,IC_kwDOAMm_X85RV8gy,15239248,2022-12-25T16:38:03Z,2022-12-25T16:38:03Z,NONE,"I have actually manage to make it work with minimal modification of the source xarray code:
```python
import xarray as xr
import matplotlib.pyplot as plt
import matplotlib as mpl
def _pass(*_,**__):
pass
mpl.figure.SubFigure.tight_layout = _pass
da = xr.tutorial.open_dataset(""air_temperature"")['air']
fig:plt.Figure = plt.figure(
constrained_layout=True,
figsize = (2*4,2*2)
)
(fig_top,fig_bot) = fig.subfigures(2,1)
(
da.groupby(da['time'].dt.season)
.mean()
.plot(col='season',fig=fig_top)
)
(
da.groupby(da['time'].dt.hour)
.mean()
.plot(col='hour', fig=fig_bot)
)
```

","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1510151748
https://github.com/pydata/xarray/issues/7401#issuecomment-1364696481,https://api.github.com/repos/pydata/xarray/issues/7401,1364696481,IC_kwDOAMm_X85RV52h,15239248,2022-12-25T15:12:15Z,2022-12-25T15:12:15Z,NONE,"thanks for the reply. Somehow i don't find an elegant way that does not involve many loops and hoops. Lets consider the following short example:
I want to produce a figure that takes the xr.tutorial.open_dataset(""air_temperature"") and produces a mean grouped by season and hour in the same figure:
Creating the top and bottom rows independently is super efficient with xarray:
```python
import xarray as xr
import matplotlib.pyplot as plt
da = xr.tutorial.open_dataset(""air_temperature"")['air']
(
da.groupby(da['time'].dt.season)
.mean()
.plot(col='season')
)
(
da.groupby(da['time'].dt.hour)
.mean()
.plot(col='hour')
)
```
but combining both seems quite complicated to me. I wish I could pass a subfigure to the plot function in the following way
```python
fig:plt.Figure = plt.figure()
(fig_top,fig_bot) = fig.subfigures(2,1)
(
da.groupby(da['time'].dt.season)
.mean()
.plot(col='season',fig=fig_top)
)
(
da.groupby(da['time'].dt.hour)
.mean()
.plot(col='hour', fig=fig_bot)
)
```

maybe I am missing a smart way of doing this?
cheers
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1510151748
https://github.com/pydata/xarray/issues/7401#issuecomment-1364669991,https://api.github.com/repos/pydata/xarray/issues/7401,1364669991,IC_kwDOAMm_X85RVzYn,10194086,2022-12-25T12:01:27Z,2022-12-25T12:01:27Z,MEMBER,I think the usual workflow is to create the figure with gridspec and then update the created subplots and figure. Is there something that is not possible if done this way around? ,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1510151748