Python TypeError用于绘制%的每个第N个值'不支持的操作数类型:'方法'和' int''

时间:2017-07-13 20:27:52

标签: python matplotlib plot typeerror

我是编码和Python的新手,我正在努力策划一些东西。所以我有两组数据,我使用渐变在地图上绘制(红色和蓝色颜色图中的两个散点图)。

outputted plot of the first two data sets

fig1=plt.figure()
ax=plt.axes(projection=ccrs.PlateCarree())
ax.coastlines()
ax.add_feature(cartopy.feature.LAND)
gl=ax.gridlines(draw_labels = True, linewidth=0.0, color='gray')
gl.xlabels_top = False
gl.ylabels_right = False
plt.scatter(VFX0,VFY0, c=VFF3, s=2, cmap='Reds')
plt.colorbar(label='High Divergence', shrink=0.6)
plt.scatter(VBX0,VBY0,c=VBF3, cmap='Blues', s=2)
plt.colorbar(label='High Convergence', shrink=0.6)
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.title('Langrangian Coherent Structures', weight='bold')
plt.show()

现在我想要添加第三个数据集,它将浮动的纬度和经度绘制在另一个数字上。但是,数据集非常大,如果我只绘制它们,例如

plt.scatter(fframe.lon, fframe.lat, color='k', s=1)
我得到的只是一个黑色的身影,因为有很多花车。所以,我想做的是,每10次浮动并绘制一次。所以我试着告诉它采取' fnum'这是浮点数,如果它可以被10整除,那么绘制它,但忽略其他一切。

if fframe.fnum.all%10==0:
    plt.scatter(fframelon, fframelat, color='k', s=1)

但是当我这样做时,我收到一个错误

TypeError                                 Traceback (most recent call last)
<ipython-input-50-28254189539a> in <module>()
----> 1 if fframe.fnum.all % 10 == 0:
      2     plt.scatter(fframelon, fframelat, color='k', s=1)
      3 plt.xlabel('Longitude')
      4 plt.ylabel('Latitude')
      5 plt.title('Langrangian Coherent Structures', weight='bold')
TypeError: unsupported operand type(s) for %: 'method' and 'int' 

任何人都可以帮我弄清楚我的错误在哪里吗?

1 个答案:

答案 0 :(得分:0)

假设fframe.lonframe.lat是列表或一维numpy数组,您可以按n绘制每个fframe.lon[::n]点。例如。每十分一次,

plt.scatter(fframe.lon[::10], fframe.lat[::10], color='k', s=1)