Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python for loop matplotlib条形图未显示所有数据_Python_Matplotlib - Fatal编程技术网

Python for loop matplotlib条形图未显示所有数据

Python for loop matplotlib条形图未显示所有数据,python,matplotlib,Python,Matplotlib,我有一个字典,每个键代表一年,每个值代表该年某个领域的降雨异常 anoms_yearly.keys() dict_keys([1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,

我有一个字典,每个键代表一年,每个值代表该年某个领域的降雨异常

anoms_yearly.keys()

dict_keys([1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019])
每个键、值对只是一个xarray数据数组,它具有值和值的时间

anoms_yearly[1980].values
array(-3.49641086)
现在,我尝试在一个简单的条形图中绘制数据

fig,ax=plt.subplots(figsize=(20,12))
for i in anoms_yearly.keys():
    if anoms_yearly[i].values<0:
        colors='brown'
    else:
        colors='green'
    ax.bar(anoms_yearly[i]['time'], anoms_yearly[i].values, color=colors)
fig,ax=plt.子批次(figsize=(20,12))
因为我每年都在anoms_.keys():

如果anoms_yearly[i].values我有点困惑,在绘图函数中如何处理字典中的键和条目。 让我们创建一个最低限度的工作示例:

导入matplotlib.pyplot作为plt
随机输入
D=dict()
对于范围内的i(19002000):
D[str(i)]=random.random()-0.5
字典
D
包含1900-1999年的年份,以字符串作为键,以
-0.5
0.5
之间的随机数作为对应值

你可以像以前那样循环浏览字典的键。但是,如果你想访问它,只需调用字典的关键。无需进行此类索引和调用
.values()
.keys()
。见:

fig,ax=plt.subplot()
对于D.keys()中的键:
如果D[键]<0:
“棕色”
其他:
“绿色”
ax.条(键,D[键],颜色=颜色)
XTick现在变得一团糟,因为它们是字符串,python/matplotlib不知道它们是有序的,可以分组


无论如何,我猜你奇怪的输出来自奇怪的索引
anoms_year[I]['time']
,坦率地说,我不明白你为什么要用键对它进行索引(在这种情况下,
D[key]
并用
time
再次对返回进行索引,就好像会返回另一本词典一样……)

我不是Python字典方面的专家,但为什么不将字典转换为数组或数据帧(更多信息)