Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.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 类型错误:ufunc';sqrt&x27;在basemap中打印颜色贴图时,输入类型不受支持_Python_Matplotlib Basemap_Colormap - Fatal编程技术网

Python 类型错误:ufunc';sqrt&x27;在basemap中打印颜色贴图时,输入类型不受支持

Python 类型错误:ufunc';sqrt&x27;在basemap中打印颜色贴图时,输入类型不受支持,python,matplotlib-basemap,colormap,Python,Matplotlib Basemap,Colormap,我想用彩色地图画一个关于房价和地理坐标之间关系的散点图 from mpl_toolkits.basemap import Basemap lats = df['latitude'].as_matrix() lons = df['longitude'].as_matrix() zoom_scale = 0 bbox = [np.min(lats)-zoom_scale,np.max(lats)+zoom_scale,\ np.min(lons)-zoom_scale,np.

我想用彩色地图画一个关于房价和地理坐标之间关系的散点图

from mpl_toolkits.basemap import Basemap


lats = df['latitude'].as_matrix()
lons = df['longitude'].as_matrix()

zoom_scale = 0

bbox = [np.min(lats)-zoom_scale,np.max(lats)+zoom_scale,\
        np.min(lons)-zoom_scale,np.max(lons)+zoom_scale]

plt.figure()

m = Basemap(projection='merc',llcrnrlat=bbox[0],urcrnrlat=bbox[1],\
    llcrnrlon=bbox[2],urcrnrlon=bbox[3],resolution='i')

m.drawcoastlines()
m.drawrivers()

x,y = m(lons,lats)
cm = plt.cm.get_cmap('coolwarm')
plot = m.scatter(x,y,'o',c = df['price'],cmap=cm)
plt.colorbar(plot)
plt.title("House Price with Geographic Coordinate")
plt.show()
控制台显示一个类型错误:


中的TypeError回溯(最近一次调用)

TypeError:输入类型不支持ufunc“sqrt”,并且无法根据强制转换规则“安全”将输入安全强制为任何支持的类型

我怎样才能解决这个问题?
致以最诚挚的问候

plt.scatter
行中取出
'o'

这是
scatter
绘图的问题。这可以通过明确提及您提供的参数来解决

所以,改变

plot = m.scatter(x,y,'o',c = df['price'],cmap=cm)


一些免费提示:使用散点图时,避免直接命名函数参数,即:

plt.scatter(x,y,'blue')
宁可使用

plt.scatter(x,y,color='blue')
此外,要在日常编程中包含调试,首先只需将散点绘制为
plot=m.scatter(x,y)
。然后,继续增加属性,如颜色、形状等


注意:直线图中不容易出现此错误(
plt.plot(x,y,'red')
将起作用)

直线
plot=m.scatter(x,y,'o',c=df['price',cmap=cm)
,df['price']的内容是什么?如果你在没有
c=df['price']
的情况下运行代码,它是否有效?我打算绘制每个坐标的房价,看看它们之间是否有任何关系。如果我删除了c=df['price']和cmap设置,控制台仍然会给我相同的错误。请尝试不使用'o',这在
散布中是不必要的。
plt.scatter(x,y,'blue')
plt.scatter(x,y,color='blue')