Tôi đang âm mưu dữ liệu trên bản đồ sử dụng mã này:Loại bỏ mép trắng trong cốt truyện pcolor/basemap Matplotlib
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
from scipy.io import netcdf
ncfile = netcdf.netcdf_file(myfile.nc,'r')
lon = ncfile.variables['longitude'][:]
lat = ncfile.variables['latitude'][:]
data = ncfile.variables['mydata'][:]
ncfile.close()
m = Basemap(projection='nplaea', boundinglat=40, lon_0=270)
m.drawcoastlines(linewidth=.6, zorder=2)
m.drawparallels(np.arange(-80.,81.,20.), zorder=1)
m.drawmeridians(np.arange(-180.,181.,20.), zorder=1)
cNorm = mpl.colors.Normalize(vmin=0, vmax=np.nanmax(data))
cmap = plt.get_cmap('jet')
lons, lats = np.meshgrid(lon, lat)
x, y = m(lons, lats)
datamap = m.pcolor(x, y, data, zorder=0)
datamap.set_norm(cNorm)
plt.colorbar(datamap, cmap=cmap, norm=cNorm, shrink=0.5)
plt.savefig('figures/map_polar.png', dpi=150, bbox_inches='tight', pad_inches=0.4)
Điều này dẫn đến hình ảnh này:
Như bạn có thể thấy, có khoảng trống trắng giữa các ô lưới. Làm thế nào tôi có thể loại bỏ chúng?
bạn có thể đặt tệp dữ liệu lên bất kỳ nơi nào không? – tacaswell
Thật không may, không, nhưng nó thường xuyên khoảng cách dữ liệu gridded .. – HyperCube
Đối với bất cứ điều gì nó có giá trị, tôi không thể sao chép vấn đề của bạn bằng cách sử dụng ngẫu nhiên tạo ra (hoặc liên tục) dữ liệu ... Phiên bản của matplotlib bạn đang sử dụng? Có lẽ đó là một lỗi đã được sửa? Ngoài ra, 'pcolormesh' sẽ nhanh hơn trong trường hợp này. Hãy thử sử dụng nó thay vì 'pcolor'. Tôi nghi ngờ (?) Nó sẽ sửa chữa vấn đề của bạn, nhưng nó phải nhanh hơn, bất kể. –