2017-07-31 4 views
0

私はグラフを作るためにpythonとmatplotlibを使用しています。グラフは正常に動作していますが、下の図のようになります。Matplotのlibは私の辞書のすべての値をプロットしません

My Graph

しかし、私はこれの上に第2組のデータをプロットする問題を抱えています。私はちょうど私が "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

:「フロート」オブジェクトが反復可能ではありません – Programmer

答えて

0

Pythonでは全く同じキーを使用できません。例えば

:あなたの辞書を構築する際に

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

ですから、効果的にいくつかの情報を失います。したがって、この辞書だけからプロットすることは不可能です(情報がそこにないので)。

辞書キーを何らかの分類として使用しているようです。おそらく、タプルのリストこの場合に、より理にかなって:ちょうど私はTypeError与えイーストンBornemeier @

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

sense.Iは、辞書に関することを知りませんでし作ること、それを手に入れました。ありがとうございました! – Programmer

関連する問題