Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法使用matplotlib显示数据_Python_Python 3.x_Matplotlib_Plot_Netcdf - Fatal编程技术网

Python 无法使用matplotlib显示数据

Python 无法使用matplotlib显示数据,python,python-3.x,matplotlib,plot,netcdf,Python,Python 3.x,Matplotlib,Plot,Netcdf,这是我第一次尝试使用matplotlib绘图。我试图用matplotlib绘制一个位势高度的netCDF文件数据,得到一张空白图像。没有海岸线什么的。只是一个空白屏幕。 我的数据范围从5 N到40 N,从65 E到100 E 我打印出了lat、lon和hgt的值,它们都是有效的 这是我的密码- nc_f = './hgt_500_2014_12_5_00Z.nc' # Your filename nc_fid = Dataset(nc_f, 'r') # Dataset is the cla

这是我第一次尝试使用matplotlib绘图。我试图用matplotlib绘制一个位势高度的netCDF文件数据,得到一张空白图像。没有海岸线什么的。只是一个空白屏幕。 我的数据范围从5 N到40 N,从65 E到100 E

我打印出了lat、lon和hgt的值,它们都是有效的

这是我的密码-

nc_f = './hgt_500_2014_12_5_00Z.nc'  # Your filename
nc_fid = Dataset(nc_f, 'r')  # Dataset is the class behavior to open the file

lats = nc_fid.variables['lat'][:]
lons = nc_fid.variables['lon'][:]
time = nc_fid.variables['time'][:]
hgt = nc_fid.variables['hgt'][:] 


hgt_units = nc_fid.variables['hgt'].units

nc_fid.close()

lon_0 = lons.mean()
lat_0 = lats.mean()


m = Basemap(width=5000000,height=3500000,
        resolution='l',projection='stere',\
        lat_ts=40,lat_0=lat_0,lon_0=lon_0)

lon, lat = np.meshgrid(lons, lats)
xi, yi = m(lon, lat)

cs = m.pcolor(xi,yi,np.squeeze(hgt))


m.drawparallels(np.arange(5., 40., 5.), labels=[1,0,0,0], fontsize=10)
m.drawmeridians(np.arange(65., 100., 5.), labels=[0,0,0,1], fontsize=10)

m.drawcoastlines()
m.drawstates()
m.drawcountries()

cbar = m.colorbar(cs, location='bottom', pad="10%")
cbar.set_label(hgt_units)

plt.title('Geopotential Height')

plt.show()        
我在运行python时也会遇到这个错误

Traceback (most recent call last):
 File "/usr/local/lib/python3.4/dist-packages/matplotlib-1.5.0-py3.4-linux-x86_64.egg/matplotlib/backends/backend_gtk3agg.py", line 69, in on_draw_event
buf, cairo.FORMAT_ARGB32, width, height)
NotImplementedError: Surface.create_for_data: Not Implemented yet.
Traceback (most recent call last):
 File "/usr/local/lib/python3.4/dist-packages/matplotlib-1.5.0-py3.4-linux-x86_64.egg/matplotlib/backends/backend_gtk3agg.py", line 69, in on_draw_event
buf, cairo.FORMAT_ARGB32, width, height)
NotImplementedError: Surface.create_for_data: Not Implemented yet.
  • 您可以像
    lons=nc\u fid.variables['lon']
    那样编写

  • 检查你的lat-lon值,它们必须覆盖从5N到40N以及从65E到100E的区域

  • drawstates()
    不适用于您所在的地区此命令为我们绘制州边界

  • 检查其他GUI后端:TkAgg、WX、QTAgg、QT4Agg等:

    import matplotlib

    matplotlib.use('Agg')

  • 这可能是开罗图书馆的问题


  • 百分之百正确!我刚刚安装了cairo并使其工作!!!多谢!