I have an xarray Dataset called dens that I would like to plot.
This is the Dataset:
<xarray.Dataset>
Dimensions: (time: 641, lat: 30, lon: 30)
Coordinates:
* time (time) datetime64[ns] 2013-07-01T12:00:00 ... 2013-08-02T12:00:00
* lon (lon) float64 32.73 32.83 32.94 33.05 ... 35.53 35.64 35.75 35.85
* lat (lat) float64 31.08 31.27 31.47 31.66 ... 36.06 36.25 36.44 36.63
Data variables:
density (time, lat, lon) float64 2e+03 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
I am using the command
plt.contourf(dens.density.values[-1,:,:]);
to plot it and it's working, but since I would like to have the coastline also drawn on the plot, I am also trying to use
m = Basemap(llcrnrlon=data['lon'].min(), llcrnrlat=data['lat'].min(),
urcrnrlon=data['lon'].max(), urcrnrlat=data['lat'].max(), resolution='i', suppress_ticks=1)
m.drawcoastlines();
m.fillcontinents(color='gray',lake_color='gray');
But when I run all of the commands, and then run plt.show()
,the contour plot disappears, and all that it shows me is the coastline.
How could I fix this to get a contour plot + the coastline plot in the same figure?
Sorry if this is a silly question, but i'm pretty new to python
Thank you for any help,
Yotam
EDIT: I only just now realized that I am trying to combine two different "toolkits", and that there is a possibility to do all of this using only the basemap toolkit, but just trying to write
m.contourf(dens.density.values[-1,:,:]);
gives me this error:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[21], line 1
----> 1 m.contourf(dens.density.values[-1,:,:])
TypeError: Basemap.contourf() missing 2 required positional arguments: 'y' and 'data'
ANOTHER EDIT: I keep discovering more things as I go along, after reading the documentation of Basemap, I realized that the syntax of the command should be something like this
m.contourf(dens.lon.values,dens.lat.values,dens.density.values[-1,:,:]);
but now I get this error:
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed
I'm guessing this is because of my density array, which is 2D, but how do I extract from it just the density values? I'm using the [-1] in the time dimension because I only actually need the last timestep
Again, thanks in advance, Yotam
LAST EDIT
This is the final plot, how can I make the land around to be grey instead of purple? Also, is there a way to depict a larger geographical area, just a bit larger, without messing with the data?
This is the new figure with my actual data