2017-07-31 46 views
0

我正在使用python和matplotlib來創建圖形。圖表工作正常,下面是一張圖片。Matplot lib不會在我的字典中繪製所有值

My Graph

但是,我無法在此之上繪製第二組數據。我只想繪製與我稱爲「F_type」的字典的值相對應的垂直線,其中包含15個項目。我試圖通過使用此代碼來執行此操作:

F_type = {'CaII': 3933.70, 'CaII': 3968.50, 'H': 3970.10, 'H': 4101.70, 'HeI': 4121.00, 'SiII': 4128.00, 'SiII': 4131.00, 'CaI': 4227.00, 'FeI': 4299.00, 'FeI': 4303.00, 'H': 4340.50, 'CH': 4314.00, 'MgII': 4481.00, 'H': 4861.30, 'H': 6562.70} 

for keys, values in F_type.items(): 
    plt.axvline(x=values) 

但是,結果圖僅顯示15個值中的8個。

It looks like this

爲什麼不matplotlib繪製在字典中的每個值?

+0

@伊斯頓Bornemeier只是給我的類型錯誤:「浮動」對象不是可迭代 – Programmer

回答

0

Python不允許完全相同的鍵。

例如:

>>> d = {'a': 0, 'a': 1, 'b': 0} 
>>> d 
{'a': 1, 'b': 0} 

所以你切實地減掉構建你的字典,當你的一些信息。因此從這本字典單獨繪圖是不可能的(因爲信息不存在)。

這似乎是你使用字典鍵作爲某種分類。也許一個元組列表更有意義在這種情況下:

F_type = [('CaII', 3933.70), ('CaII', 3968.50), etc, etc] 
for val in F_type: 
    plt.axvline(x=val[1]) 
+0

明白了,這使得sense.I不知道關於字典。謝謝! – Programmer

相關問題