Так же, как на картинке ниже: Figure_3 & Figure_5 взяты из одного и того же кода, однако они разные:

for i2 in a:
if i2 != i1 and i2 != i:
fig, ax = plt.subplots()
data2 = df.groupby([i, i1, i2])['income'].sum()
data0.plot.pie(ax=ax, radius=1-size, autopct='%.1f%%', wedgeprops=dict(width=size, edgecolor='w'))
data1.plot.pie(ax=ax, radius=1, autopct='%.1f%%', wedgeprops=dict(width=size, edgecolor='w'))
data2.plot.pie(ax=ax, radius=1+size, autopct='%.1f%%', wedgeprops=dict(width=size, edgecolor='w'))
ax.set(aspect=1)
Я пытался вызвать plt.tight_layout()
внутри каждого цикла и установить figure.autolayout rcParam
на True
в for i in a:
, ни один из них не может сделать Figure_5 с теми же функциями, что и
Figure_3 .
..................... разделительная линия ........................
Единственный sulotion, на данный момент, это установка size
на 0.3
с 0.4
и plt.rcParams['figure.autolayout'] = True
перед `для меня в:
Надеюсь, кто-то может объяснить механизм этого позже.

def all_pie_nested():
plt.rcParams['figure.autolayout'] = True # replace call plt.tight_layout()
for i in a:
fig, ax = plt.subplots()
data0 = df.groupby(i)['income'].sum()
data0.plot.pie(autopct='%.1f%%')
ax.set(aspect=1)
for i1 in a:
if i1 != i:
size = 0.3 # change from size = 0.4
fig, ax = plt.subplots()
data1 = df.groupby([i, i1])['income'].sum()
data0.plot.pie(ax=ax, radius=1 - size, autopct='%.1f%%', wedgeprops=dict(width=size, edgecolor='w'))
data1.plot.pie(ax=ax, radius=1, autopct='%.1f%%', wedgeprops=dict(width=size, edgecolor='w'))
ax.set(aspect=1)
for i2 in a:
if i2 != i1 and i2 != i:
fig, ax = plt.subplots()
data2 = df.groupby([i, i1, i2])['income'].sum()
data0.plot.pie(ax=ax, radius=1-size, autopct='%.1f%%', wedgeprops=dict(width=size, edgecolor='w'))
data1.plot.pie(ax=ax, radius=1, autopct='%.1f%%', wedgeprops=dict(width=size, edgecolor='w'))
data2.plot.pie(ax=ax, radius=1+size, autopct='%.1f%%', wedgeprops=dict(width=size, edgecolor='w'))
ax.set(aspect=1)
plt.show()