Как назначить цвета для гистограммы с накоплением в кадре с цветами, указанными в другом кадре? - PullRequest
0 голосов
/ 26 марта 2019

У меня огромный массив данных, df, который выглядит так:

Index Sample_names A     B     Z     C   Y   U     D ...   O     P
 0       sample1   0.1   0    0.5  0.02  0  0.005  0 ... 0.004 0.08
 1       sample2   0     0.3  0.03  0.8  0  0.3   0.01 ... 0.1   0
 .
 .
 .
99     sample100   0      0   0.5   0.01 0.4 0.02 0.01 ... 0   0.004

Я создал столбчатые диаграммы с разными подмножествами «Sample_names». Но каждый из этих графиков имеет разные цвета, назначенные одному и тому же имени столбца. Например, на одном рисунке столбцу A может быть присвоен красный цвет, тогда как на другом рисунке столбцу A может быть присвоен зеленый цвет. Это очень затрудняет сравнение цифр. Поэтому я хочу связать каждое имя столбца с цветом:

cm = plt.get_cmap('gist_rainbow')
f=int(df.size/len(df))
new_cm=[cm(1.*i/f) for i in range(f)]
color_assign=pd.DataFrame(new_cm)
color_assign['Fam_names']=list(df.head(0))
color_assign=color_assign.set_index('Fam_names')

Назначение цвета выглядит следующим образом:

Index      0         1         2         3

A        1.000000  0.000000  0.160000  1.0
B        1.000000  0.000000  0.139085  1.0  
Z        1.000000  0.000000  0.118170  1.0
.
.
.                      
P        1.000000  0.000000  0.076340  1.0

Чтобы наконец назначить, я попробовал что-то простое, например:

df1.plot(kind='bar',stacked=True,color=color_assign,legend=None)

(df1 - новый созданный мной фрейм данных, в котором всего несколько, скажем, 8 строк исходного фрейма данных, df) Но это не сработало. Есть ли способ заставить его работать?

...