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/1889#issuecomment-364518238,https://api.github.com/repos/pydata/xarray/issues/1889,364518238,MDEyOklzc3VlQ29tbWVudDM2NDUxODIzOA==,1217238,2018-02-09T18:31:28Z,2018-02-09T18:31:28Z,MEMBER,"@apatlpo sure, something like:
```python
import threading
import matplotlib.pyplot
MPL_LOCK = threading.Lock()
def save_imshow(data, path):
with MPL_LOCK:
fig, ax = plt.subplot()
ax.imshow(data)
fig.savefig(path)
```
`save_imshow()` is now something you safely call in parallel (e.g., from `dask.array.map_blocks()`).","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,294735496
https://github.com/pydata/xarray/issues/1889#issuecomment-363601313,https://api.github.com/repos/pydata/xarray/issues/1889,363601313,MDEyOklzc3VlQ29tbWVudDM2MzYwMTMxMw==,1217238,2018-02-06T23:26:49Z,2018-02-06T23:26:55Z,MEMBER,"I agree that it is certainly a best practice to avoid relying on global state from the pyplot module.
That said, my experience has been that even if you avoid using pyplot functions matplotlib is still not thread-safe ([StackOverflow](https://stackoverflow.com/questions/34764535/why-cant-matplotlib-plot-in-a-different-thread) backs me up here). So you probably will need a thread-lock around your use of any plotting functions, anyways.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,294735496