id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 1510151748,I_kwDOAMm_X85aAxZE,7401,Allow passing figure handle to FacetGrid,15239248,open,0,,,6,2022-12-24T17:06:40Z,2023-10-25T17:10:32Z,,NONE,,,,"### Is your feature request related to a problem? Sometimes i need to combine xarray Facet grids with other ax plots. It would be amazing if I could pass a created figure to the plot function. Event better a subfigure so that the possibilities are infinite! ### Describe the solution you'd like for example: ```python da = xr.tutorial.open_dataset(""air_temperature"")['air'] f = plt.figure() ( da [{'time':[1,2,4]}] .plot.contourf(col='time',fig = f) ) ``` ### Describe alternatives you've considered an alternative is to manually to all plots in a created figure, but this becomes cumbersome. I quickly checked the source code, and it does not seem very difficult to implement. mostly a modification to the get_axis function so that it accepts an already created figure. I managed to quickly make it work in seaborn (see image below) ### Additional context _No response_","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7401/reactions"", ""total_count"": 3, ""+1"": 3, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 1265344088,I_kwDOAMm_X85La55Y,6677,inconsistency between resample and plotting ,15239248,open,0,,,0,2022-06-08T21:41:03Z,2022-06-08T21:41:03Z,,NONE,,,,"### What is your issue? I believe there is an inconsistency between using the resample function (left labeled) and the plotting function (center labeled). Maybe the example below help illustrating the issue: ```python d = [ [1,0,0,0,0,0,1,0,0,0,0,0], [0,0,1,1,0,0,0,1,1,1,1,0], [0,0,0,0,0,0,0,0,0,0,1,0], ] t = pd.date_range('2000-01-01 00:05','2000-01-01 00:17',freq='1t',closed='left') da = xr.DataArray(d,dims=['i','t'],coords={'t':t}) f,axs = plt.subplots(4,sharex=True,constrained_layout=True) def _plot(da_,ax_): return da_.plot(ax=ax_,add_colorbar=False,vmin=0,vmax=1.001,levels=11) for ax,tt in zip(axs[1:],['2t','3t','4t']): da_ = da.resample({'t':tt}).mean() gr = _plot(da_,ax) ax.set_title(f'resample: {tt}') _plot(da,axs[0]) axs[0].set_title('orginal') for ax in axs: ax.grid() ax.set_xticks(t) ax.set_xticklabels(t.strftime('%M')) ax.set_xlim(pd.to_datetime('2000-01-01 00:00'),pd.to_datetime('2000-01-01 00:20')) f.colorbar(gr,ax=axs) ``` In the example above, the most relevant problem is the high value at min 11 in panel 1 that after resampling to 4 minutes in panel 4 gets shifted and displayed between minutes 6 and 10. I know that i can shift the results from resample with the parameter loffset (='30s' ). but this that not help since now the high value in panel 1 (min 11) is also shifted to minutes 6-10 in panel 4 ```python d = [ [1,0,0,0,0,0,1,0,0,0,0,0], [0,0,1,1,0,0,0,1,1,1,1,0], [0,0,0,0,0,0,0,0,0,0,1,0], ] t = pd.date_range('2000-01-01 00:05','2000-01-01 00:17',freq='1t',closed='left') da = xr.DataArray(d,dims=['i','t'],coords={'t':t}) f,axs = plt.subplots(4,sharex=True,constrained_layout=True) def _plot(da_,ax_): return da_.plot(ax=ax_,add_colorbar=False,vmin=0,vmax=1.001,levels=11) for ax,tt in zip(axs[1:],['2t','3t','4t']): da_ = da.resample({'t':tt},loffset='30s').mean() gr = _plot(da_,ax) ax.set_title(f'resample: {tt}') _plot(da,axs[0]) axs[0].set_title('orginal') for ax in axs: ax.grid() ax.set_xticks(t) ax.set_xticklabels(t.strftime('%M')) ax.set_xlim(pd.to_datetime('2000-01-01 00:00'),pd.to_datetime('2000-01-01 00:20')) f.colorbar(gr,ax=axs) ``` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6677/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 1007368839,I_kwDOAMm_X848CzqH,5825,virtual ,15239248,closed,0,,,0,2021-09-26T11:52:15Z,2021-09-26T11:52:33Z,2021-09-26T11:52:33Z,NONE,,,,Your issue content here.,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5825/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 506205450,MDU6SXNzdWU1MDYyMDU0NTA=,3394,Update a small slice of a large netcdf file without overwriting the entire file.,15239248,open,0,,,1,2019-10-12T16:06:18Z,2021-07-04T03:32:00Z,,NONE,,,," #### MCVE Code Sample ```python # Your code here orig = '/tmp/orig.h5' ii = 100000 data = xr.Dataset( { 'x':('t',np.random.randn(ii)), 'y':('t',np.random.randn(ii)) }, coords={'t':range(ii)} ) # function to save the large file usnig chunksizes def save(ds,path,**kwargs): dvars = ds.variables chunksize = 100 var_dic = {} for var in dvars: var_dic[var]={ 'chunksizes': (chunksize,) } delayed =ds.to_netcdf(path,encoding=var_dic,**kwargs) save(data,orig) data.close() #open the file, using dask data_1 = xr.open_mfdataset([orig],chunks={'t':100}) #Change variable x data_1['x']=data_1['x']+20 data_1.close() #update only variable x. This works! data_1['x'].to_netcdf(orig,mode='a') # try the same but now update only a slice of the x variable #open the file, using dask data_1 = xr.open_mfdataset(orig,chunks={'t':100}) #Change variable x data_1['x']=data_1['x']+20 data_1.close() #update only variable x. this doesnt work! data_1['x'][{'t':slice(0,10)}].to_netcdf(orig,mode='a') ``` #### Expected Output #### Problem Description Hi, I have a large dataset that does not fit in memory. Lets say i only want to update a small portion of it. Is there any way to update this small portion without having to rewrite the entire file. I was fiddling around and found a way to update one variable at a time, but i want to be able to update only a subsection of this variable #### Output of ``xr.show_versions()``
INSTALLED VERSIONS ------------------ commit: None python: 3.6.7 | packaged by conda-forge | (default, Jul 2 2019, 02:07:37) [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] python-bits: 64 OS: Darwin OS-release: 18.7.0 machine: x86_64 processor: i386 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: en_US.UTF-8 libhdf5: 1.10.5 libnetcdf: 4.6.2 xarray: 0.12.3 pandas: 0.25.1 numpy: 1.17.1 scipy: 1.3.1 netCDF4: 1.5.1.2 pydap: None h5netcdf: 0.7.4 h5py: 2.9.0 Nio: None zarr: None cftime: 1.0.3.4 nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: None dask: 2.3.0 distributed: None matplotlib: 3.1.1 cartopy: 0.17.0 seaborn: 0.9.0 numbagg: None setuptools: 41.2.0 pip: 19.2.3 conda: 4.7.11 pytest: 4.5.0 IPython: 7.8.0 sphinx: 2.2.0
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3394/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue