我有这样的字典:
{1: {'a': 140, 'c': 173, 't': 128, 'g': 136}, 2: {'a': 145, 'c': 161, 't': 138, 'g': 133}...}
我想将每个字母代表每个键的百分比显示为条形图。因此,键(1,2,3 ......)将是x值,y值将全部为1或100%或其他。
然后,对应于字母a,c,t,g的值将用于构成每个条形的百分比,并且每个字母的颜色不同,我无法弄清楚如何在matplotlib中执行此操作
答案 0 :(得分: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')