Code: Select all
fake_df = pd.DataFrame([70, 15, 15],
columns=['category'],
index=['Category Name 1', 'Category Name 2', 'Category Name 3'])
fake_df.plot.pie(y='category',
labels=None,
autopct="%1.0f%%",
pctdistance=1.2,
)

Ich weiß, dass ich in diesem Einzelfall die Legende explizit „oben links“ zuweisen oder die Platzierung der Legende oder Prozentsätze manuell auf andere Weise manipulieren kann, um Überschneidungen zu vermeiden, aber das funktioniert nicht in Fällen, in denen die Prozentsätze angezeigt werden oben links zum Beispiel:
Code: Select all
fake_df = pd.DataFrame([71, 15, 14],
columns=['category'],
index=['Category Name 1', 'Category Name 2', 'Category Name 3'])
fake_df.plot.pie(y='category',
labels=None,
autopct="%1.0f%%",
pctdistance=1.2,
)
plt.legend(['Category Name 1', 'Category Name 2', 'Category Name 3'], loc='upper left')

Und da bin ich automatisch Wenn ich eine große Anzahl von Kreisdiagrammen erstelle, bei denen es keine einzige Legendenplatzierung gibt, die immer funktioniert, und ich nicht wissen kann, wo es zu möglichen Überlappungen kommen wird, möchte ich eine allgemeine Lösung, die die Legende zuverlässig so platziert, dass Überlappungen vermieden werden. Ist das möglich?