Basi c сложенный граф с 256 секторами изображений. Чтобы сделать его двухуровневым, как на представленном изображении, вам нужно добавить ax2
или изменить структуру данных. Это очень сложный процесс, поэтому для вывода требуется некоторое время.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import random
FAT_No = np.arange(0, pow(2,8))
sector_st = random.choices(['type1','type2','type3','type4'], k=256)
value = [1]*256
before = ['before']*256
df = pd.DataFrame({'before':before,'fat_no':FAT_No, 'sector':sector_st, 'value':value})
df
before fat_no sector value
0 before 0 type1 1
1 before 1 type1 1
2 before 2 type4 1
3 before 3 type2 1
4 before 4 type2 1
... ... ... ... ...
251 before 251 type2 1
252 before 252 type2 1
253 before 253 type3 1
254 before 254 type2 1
255 before 255 type4 1
fig = plt.figure(figsize=(16,3),dpi=144)
ax = fig.add_subplot(111)
color = {'type1':'b','type2':'g','type3':'r','type4':'w'}
for i in range(len(df)):
ax.barh(df['before'], df['value'].iloc[i], color=color[df['sector'].iloc[i]], left=df['value'].iloc[:i].sum())
plt.show()
введите описание изображения здесь