2017-08-04 2 views
-2

Ich habe ein Wörterbuch wie folgt aus:Gestapelte Balken als Prozentsatz der gesamten matplotlib mit Wörterbuch

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

Und ich möchte als BarPlot den Prozentsatz anzuzeigen, die jeden Buchstaben auf jeder Taste repräsentiert. Also wären die Schlüssel (1,2,3 ...) die x-Werte, und y-Werte wären alle 1 oder 100% oder so.

Dann würden die Werte, die den Buchstaben a, c, t, g entsprechen, verwendet, um einen Prozentsatz jedes Balkens zu bilden und für jeden Buchstaben unterschiedlich zu färben, und ich kann nicht genau herausfinden, wie dies in Matplotlib zu tun ist.

Antwort

1

Dies ist ziemlich einfach mit pandas kombiniert:

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

Verwandte Themen