Я хочу создать пузырьковую карту, чтобы показать, сколько морского мусора было собрано (т.е. моя третья переменная) в каждой из моих координат. Я также хочу показать пузыри заданного размера и цвета для координат, для которых отсутствует значение третьей переменной. Моя четвертая переменная - это количество участников на каждом мероприятии по уборке пляжа, и это будет цвет точек, для которых у меня есть значение переменной размера.
Используя свой код, я могу построить точки с третьими значениями переменных, но те, у которых нет, не отображаются.
Есть ли способ построить график моих значений и NaN без замены NaN на конкретное значение?
Мне не удалось найти никаких ранее заданных вопросов по этому поводу. Кажется, что люди обычно хотят удалить точки с помощью nan, а не рисовать их. Это будет полезно для всех, кто хочет построить события известного размера и одновременно показать события неизвестного размера, которые также имели место.
Мой код с некоторыми примерами:
from mpl_toolkits.basemap import Basemap
%matplotlib inline
lat = [69.234128, 69.244113, 69.281377]
lon = [15.867903, 16.119887, 15.973608]
kg = [nan, 120, 80]
participants = [1, 30, 100]
fig = plt.figure(figsize=[12,15])
map = Basemap(llcrnrlon = 15.39,
urcrnrlon = 16.27,
llcrnrlat = 68.8,
urcrnrlat = 69.35,
resolution = 'f',
projection = 'lcc',
lat_0 = 69.1,
lon_0 = 15.8)
map.drawmapboundary(fill_color='xkcd:baby blue')
map.fillcontinents(color='gray', lake_color='xkcd:baby blue')
map.drawcoastlines()
for i in kg:
if i == 'nan':
map.scatter(lon, lat, latlon = True, zorder = 3,
s = 50,
linewidth = 0.5,
edgecolor = 'k',
c = 'k',
alpha = 0.5)
else:
map.scatter(lon, lat, latlon = True, zorder = 2,
s = kg,
linewidth = 0.5,
edgecolor = 'k',
c = participants,
cmap = 'Blues',
alpha = 0.5)
Я пробовал эти варианты:
if i is None
if i == None
if i is NaN
if i == NaN
if i is 'NaN'
if i == 'NaN'
if i is nan
if i == nan
if i is 'nan'
if i == 'nan'
Варианты без "" приводят к сообщению об ошибке, в котором говорится, что имя NaN не указано.
Я также пробовал использовать кг для цвета и участников для размера, но до сих пор не получил черных точек одинакового размера на карте.
Что я должен делать?
if i == 'nan':
должна быть больше похожа наif math.isnan(i):
для проверки. - person Andrew Morton   schedule 07.03.2019numpy
maskedarray
, чтобы избежать нежелательных значений при построении графика. - person swatchai   schedule 07.03.2019how to check the NaN value
, и опубликовать его как новый вопрос. - person swatchai   schedule 07.03.2019