2017-08-04 15 views
-2

と全体matplotlibのの割合として私はこのような辞書があります。積み上げ棒は、辞書

{1: {'a': 140, 'c': 173, 't': 128, 'g': 136}, 2: {'a': 145, 'c': 161, 't': 138, 'g': 133}...}

をそして私はbarplotとして各文字が各キーに占めるパーセンテージを表示したいと思います。したがって、キー(1,2,3 ...)はxの値になり、yの値はすべて1または100%などになります。

次に、文字a、c、t、gに対応する値が各バーの割合を構成するために使用され、文字ごとに色分けされていて、matplotlibでこれをどうやって行うのか分かりません。

答えて

1

これはpandasと組み合わせた非常に簡単です:

import matplotlib 
import pandas as pd 
%matplotlib inline 
​ 
d = {1: {'a': 140, 'c': 173, 't': 128, 'g': 136}, 2: {'a': 145, 'c': 161, 't': 138, 'g': 133}} 

df = pd.DataFrame.from_dict(d, orient='index').apply(lambda r: r/r.sum(), axis=1) 
​ 
ax = df.plot(kind='bar', rot=0, ylim=(0, 0.4)) 
ax.set_xlabel('x axis') 
ax.set_ylabel('y axis') 

enter image description here

関連する問題