【发布时间】:2020-01-14 04:34:56
【问题描述】:
我的编程背景为零。我正在尝试为我的班级编写一些代码,它给了我一个错误“没有足够的值来解包(预期 2,得到 1)”。我的代码可能有什么问题?
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import shapefile as shp
#Read x, y, z file
data = pd.read_excel('RegionV.xlsx', header = None)
# Get X, Y, Z values from file
data = np.array(data)
data = data.astype(np.float)
x = data[:,0]
y = data[:,1]
z = data[:,2]
#Mask negative values of z (bathemetry)
zz = np.ma.masked_where(z <= 0, z)
#Create a map using basemap
fig = plt.figure(figsize=(10,10))
map = Basemap(projection='mill',llcrnrlat=11,urcrnrlat=15,\
llcrnrlon=122,urcrnrlon=125,resolution='h')
lon = np.linspace(min(x), max(x))
lat = np.linspace(min(y), max(y))
xs, ys = np.meshgrid(lon, lat)
x, y = map(xs, ys)
map.drawparallels(np.arange(12.,14.,0.5), labels=[0,0,0,1])
map.drawmeridians(np.arange(123.,126.,0.5), labels=[1,0,0,0])
#Plot
cmap = plt.cm.jet
cmap.set_bad(color='white')
m.pcolormesh(x, y, zz, cmap=cmap, vmax=1300, vmin=0)
m.colorbar(location='right', label='meters')
map.drawmapboundary()
map.drawcoastlines()
错误信息的第一部分说:
ValueError Traceback (most recent call last)
<ipython-input-50-3d7531011dc2> in <module>
44 cmap = plt.cm.jet
45 cmap.set_bad(color='white')
---> 46 m.pcolormesh(xs, ys, zz, cmap=cmap, vmax=1300, vmin=0)
47 m.colorbar(location='right', label='meters')
那么,最后,
ValueError: not enough values to unpack (expected 2, got 1)
Stackoverflow 不允许我发布整个错误消息。希望看到我帖子的人都明白我的意思。
【问题讨论】:
-
您应该将确切的错误消息粘贴到您的问题中,不要只是解释它。错误消息将告诉您(和其他所有人)问题所在的确切行号。提示:在等号左边可能有两件东西,但右边的东西只是一件不能“解包”的东西。谷歌“python 打包/解包”。一旦你确定了行号,试着为右边的东西添加一个打印行,看看你会得到什么。
-
另外,为了获得最佳结果,一旦您发布问题,最好保持在线,因为人们可能会很快提出问题,如果您不回复,您的问题可能会被搁置为“不清楚你在问什么”在这种情况下无法发布答案。
标签: python numpy matplotlib matplotlib-basemap topography