【发布时间】:2019-01-02 20:21:37
【问题描述】:
我正在尝试创建一张地图,根据卫星数据绘制风速强度。数据由经度、纬度和风速强度组成。经度/纬度绘制位置(完成),而速度根据风数据的值为每个点提供颜色。
到目前为止,所有点都是蓝色的(看脚本)。
数据框如下所示:
lon lat wind_speed
1 13.0 75.3 23.5
2 12.9 25.2 23.7
3 12.7 75.2 24.2
4 12.6 75.1 24.6
...
结果应如下所示: https://gyazo.com/118d4785b49c861096f93799f60a0622
这是我当前的代码:
import os
import numpy as np
from netCDF4 import Dataset
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
... #ncdump, this is from a file in my computer
#variables for map in array form
wind_speed_array =nc_fid.variables['wind_speed_alt']
lats=nc_fid.variables['lat'][:]
lons =nc_fid.variables['lon'][:]
fig = plt.figure()
fig.autofmt_xdate()
m = Basemap(projection='mill',resolution='l')
m.drawcoastlines()
m.drawcountries()
plt.title("time series plot: wind speed")
x,y=m(lons,lats)
cs=m.scatter(x,y,wind_speed_array,color='blue')
plt.show()
目前,我有一张包含所有点的地图,但它们都是蓝色的。如何根据示例图片中的值对点进行着色?
【问题讨论】:
-
您是否尝试过使用
seaborn的scatterplot并将值传递给hue参数?我认为那样会更容易。 -
命令是
m.scatter(x, y, c=wind_speed_array)。 -
我将命令替换为 cs=m.scatter(x,y,c=wind_speed_array)。但是,我收到一个错误,'c' 参数有 11130 个元素,这对于大小为 5565 的 'x' 和大小为 '5565' 的 'y' 使用是不可接受的。
标签: matplotlib