matplotlib不起作用

时间:2016-01-13 18:26:58

标签: numpy matplotlib plot scatter

我的代码如下所示。整个代码正在绘制两个光栅图像散点图,看看相关性。但错误消息一直告诉我valueerror:x和y必须大小相同。我很确定x和y和相同的大小。有人可以帮忙吗

from matplotlib import pyplot as plt
import netCDF4 as net
import numpy as np
hailprob=net.Dataset("/ab20140723.nc")
hailsize=net.Dataset("ailI20140723L3C_CONUS.nc")
hp=hailprob.variables['HailProb'][:]
hs=hailsize.variables['HailIndx'][:]
hp=np.array(hp)
hp1=np.where(hp>0)
hs=np.array(hs)
hs1=np.where(hs>0)
hp2=hp[hp1]
hs2=hs[hs1]
hp2.flatten()
hs2.flatten()
plt.scatter(hp2,hs2) 
main_title="scatter plot"
plt.title(main_title,loc='center')
plt.minorticks_on()
plt.tick_param(which='major',direction='in',length=6,width=2)
plt.tick_params(which='minor', direction='in', length=4, width=2)
plt.show()

1 个答案:

答案 0 :(得分:0)

如果要过滤hp或hs小于或等于零的值对,则可以执行以下操作:

mask = (hp > 0) & (hs > 0)
hp = hp[mask]
hs = hs[mask]

通过这种方式,您可以从两个数组中选择相同的值,因此最终的展平数组应该具有相同的大小。