在Python中从字典生成图形

在Python中从字典生成图形,python,python-3.x,matplotlib,currency-exchange-rates,Python,Python 3.x,Matplotlib,Currency Exchange Rates,使用此词典时无法使用Matplotlib创建图形。尝试选择这两个值,然后生成一个图形 例如,选择美元和英镑并绘制图表 import matplotlib.pyplot as plt exchange_rates = { "GBP": { "USD": 1.2, "EUR": 1.1 }, "USD": { "GBP": 1.18, "EUR": 1.07 }, "CZK": { "GBP": 28.7934, "EUR": 29.654,

使用此词典时无法使用Matplotlib创建图形。尝试选择这两个值,然后生成一个图形

例如,选择美元和英镑并绘制图表

import matplotlib.pyplot as plt

exchange_rates = {
    "GBP": {
    "USD": 1.2,
    "EUR": 1.1
},
"USD": {
    "GBP": 1.18,
    "EUR": 1.07
},
"CZK": {
    "GBP": 28.7934,
    "EUR": 29.654,
    "USD": 40.345
    }
}
def make_a_graph():
    plt.bar(range(len(exchange_rates)), exchange_rates.values())
    plt.xticks(range(len(exchange_rates)), list(exchange_rates.keys()))
    plt.show()

在您的代码中,汇率是一个本身包含词汇表的词汇表。为了绘制值,应该执行双重解引用

def make_a_graph(exchange_rates):
    x=len(exchange_rates["CZK"])
    y1=exchange_rates["CZK"]  
    plt.bar(range(x),y1.values())
    plt.show()

注意,必须与要绘制的数量长度保持一致。我在上面只画了一个键。

Traceback(最后一次调用):File“/Users/Andrew/Desktop/Python_Uni/1.3#.py”,第106行,in-app()文件“/Users/Andrew/Desktop/Python_Uni/1.3#.py”,第95行,in-app make____a_图()文件“/Users/Andrew/Desktop/Python_Uni/1.3#.py”,第77行,in-make_图plt.bar(范围(x),y1.values())文件“/Users/Andrew/PycharmProjects/HelloWorld/venv/lib/python3.6/site packages/matplotlib/pyplot.py”,第2770行,在bar ret=ax.bar(*args,**kwargs)文件中“/Users/Andrew/PycharmProjects/HelloWorld/venv/lib/python3.6/site packages/matplotlib/u init_uuuuuuuuuuu.py”,第1855行,内部返回函数(ax,**,**,**,**,**kwargs)文件“/Users/Andrew/PycharmProjects/HelloWorld/venv/lib/python3.6/site packages/matplotlib/axes/_axes.py”,第2233行,在条形图中,至少有一个1d(x),高度、宽度、y、线宽)文件“/Users/Andrew/PycharmProjects/HelloWorld/venv/lib/python3.6/site packages/numpy/lib/stride_tricks.py”,第249行,在广播数组中形状=_广播形状(*args)文件“/Users/Andrew/PycharmProjects/HelloWorld/venv/lib/python3.6/site packages/numpy/lib/stride\u tricks.py”,第184行,格式为b=np.broadcast(*args[:32])ValueError:形状不匹配:无法将对象广播到单个形状这是在实现该位后发生的错误code@AndrewShakespeare您应该将字典作为参数传递给函数make\u a\u graph