【问题标题】:Plot multiple figures from dictionary从字典中绘制多个数字
【发布时间】:2023-03-05 22:48:01
【问题描述】:

我有一本字典,该字典已将 20 多个纬度、经度位置的每月温度数据存储了 10 年。我想遍历这本字典并绘制 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 ,...

现在我尝试设置一个循环来遍历字典中唯一改变城市名称的所有键。

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

理想情况下,我会得到与字典中所有城市相对应的 20 多个不同的线图,但我得到了这个错误。

TypeError: 'int' object is not iterable

【问题讨论】:

  • 你能不能也展示一个你的时间数据的例子?最好包括完整的堆栈跟踪。
  • 请提供完整代码。什么是城市[i]?您如何期望 dict 与整数索引一起使用?为什么不使用for city in cities
  • 请下次最好提供一个最小的例子。

标签: python datetime dictionary matplotlib


【解决方案1】:

您正在使用 len() 函数来获取字典的大小(将是一个整数)并对其进行迭代,这是不可能的。 我认为这就是你想要做的:

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

【讨论】:

    猜你喜欢
    • 2019-10-17
    • 1970-01-01
    • 2019-05-09
    • 2020-10-17
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 2018-02-16
    • 2014-02-07
    相关资源
    最近更新 更多