Vermeiden Sie zuverlässig, dass Legenden andere Elemente im Matplotlib-Kreisdiagramm überlappenPython

Python-Programme
Guest
 Vermeiden Sie zuverlässig, dass Legenden andere Elemente im Matplotlib-Kreisdiagramm überlappen

Post by Guest »

Ich erstelle eine Reihe von Kreisdiagrammen und suche nach einer Möglichkeit, die Legende automatisch zu platzieren, um Überlappungen mit anderen Elementen zu vermeiden (nicht nur ein manueller Eingriff für jedes einzelne Diagramm). Zum Beispiel:

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,
)
Image

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')
Image
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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post