Составьте несколько цифр из словаря - PullRequest
0 голосов
/ 11 марта 2020

У меня есть словарь, в котором хранятся месячные данные о температуре в течение 10 лет для более чем 20 лет. Я хочу l oop через этот словарь и построить 20+ различных линейных графиков. Здесь я указал, откуда берутся данные (файл netcdf), разрезал их на одно десятилетие и затем вывел значение словарной записи.

data=xr.open_dataset('E:/Riskpulse_HD/Jon climate study/adaptor.mars.internal-1583855532.1432714-8122-5-ace27afd-90c0-4a7d-b9ca-f3d5528c5ea1.nc')    
time = data['time']
start_date1 = dt.datetime(1990,1,1)
end_date1 = dt.datetime(1999,12,31)
times1=time.sel(time=slice(start_date1,end_date1))
cities['Shanghai']['1990s']

<xarray.DataArray 't2m' (time: 120)>
array([13.714203 , 13.964508 , 15.832062 , 19.553162 , 21.987793 ,
       25.075317 , 26.624298 , 26.381012 , 24.993042 , 23.088745 ,...

Теперь я пытаюсь настроить al oop на l oop через все ключи в словаре, где единственное, что меняется в названии города.

for i in len(cities.keys()):
    plt.plot(times1['time'],cities[i]['1990s'])

В идеале я хотел бы получить 20+ различных линейных графиков, соответствующих всем городам в словарь, но я получаю эту ошибку.

TypeError: 'int' object is not iterable

1 Ответ

2 голосов
/ 11 марта 2020

вы используете функцию len () для получения размера словаря (который будет целым числом) и итерации по нему, что невозможно. Я думаю, это то, что вы хотите сделать:

for i in cities.keys():
    plt.plot(times1['time'],cities[i]['1990s'])
...