将data.csv读取为dataframe格式,使用contourf()函数绘制色斑图,出来的是散点图(如左图所示),求教是哪里出问题了呢?
已知:data为二维数组,index为纬度,columns为经度,虽然空值较多,但不至于上图那么少。以下为代码:
BIAS = pd.read_csv('bias.csv', index_col=0)
BIAS.columns = pd.to_numeric(BIAS.columns)
lat_max = 65.25
lat_min = -65.00
lon_max = 180.25
lon_min = 70.00
lon_list = np.arange(lon_min, lon_max, 0.25)
lat_list = np.arange(lat_min, lat_max, 0.25)
X,Y = np.meshgrid(lon_list,lat_list)
fig = plt.figure(figsize=(10,10),dpi=600)
plt.contourf(X,Y, BIAS)
plt.show()
另附数据info:
BIAS.columns: <class 'pandas.core.indexes.numeric.Float64Index'>
Float64Index([ 70.0, 70.25, 70.5, 70.75, 71.0, 71.25, 71.5, 71.75,
...
177.75, 178.0, 178.25, 178.5, 178.75, 179.0, 179.25, 179.5,
179.75, 180.0],
dtype='float64', length=441)
BIAS.index: <class 'pandas.core.indexes.numeric.Float64Index'>
Float64Index([ -65.0, -64.75, -64.5, -64.25, -64.0, -63.75, -63.5, -63.25,
...
62.75, 63.0, 63.25, 63.5, 63.75, 64.0, 64.25, 64.5,
64.75, 65.0],
dtype='float64', length=521)
dataframe_slice:
130.00 130.25 130.50 ... 134.50 134.75 135.00
-3.00 NaN NaN NaN ... NaN NaN NaN
-2.75 NaN -0.319621 NaN ... -1.413187 NaN -1.125203
-2.50 NaN 0.295499 NaN ... -1.246102 NaN -1.711159
-2.25 NaN NaN NaN ... NaN NaN NaN
-2.00 NaN 0.293512 NaN ... -1.041067 NaN -0.246944
-1.75 NaN NaN NaN ... NaN NaN NaN
-1.50 NaN -0.204240 NaN ... -1.204510 NaN -0.612140
-1.25 NaN NaN NaN ... NaN NaN NaN
-1.00 NaN -0.159136 NaN ... -0.610413 NaN -0.539897
-0.75 NaN -0.073586 NaN ... -0.344249 NaN -0.034906
-0.50 NaN NaN NaN ... NaN NaN NaN
-0.25 NaN 0.076376 NaN ... -0.237410 NaN -0.073891
0.00 NaN NaN NaN ... NaN NaN NaN
0.25 NaN -0.108317 NaN ... -0.610359 NaN -0.377135
0.50 NaN NaN NaN ... NaN NaN NaN
0.75 NaN -0.519466 NaN ... -0.659523 NaN -0.341980
1.00 NaN -0.148386 NaN ... 0.133854 NaN -0.138352
1.25 NaN NaN NaN ... NaN NaN NaN
1.50 NaN -1.028926 NaN ... -0.050999 NaN -0.048413
1.75 NaN NaN NaN ... NaN NaN NaN
2.00 NaN -1.240767 NaN ... -0.560600 NaN -0.607143
2.25 NaN -0.919045 NaN ... -0.472667 NaN -0.574608
2.50 NaN NaN NaN ... NaN NaN NaN
2.75 NaN -0.466895 NaN ... -0.779426 NaN -0.727661
3.00 NaN NaN NaN ... NaN NaN NaN
[25 rows x 21 columns]
<class 'numpy.float64'>
------手动分界线------
换了个思路,数据输出成numpy之后可以plt.scatter(),contourf()始终不行....
效果如下: