2014-10-01 10 views
7

Podczas korzystania z wykresów facetagrid Seagorn. Czy możliwe jest ustawienie etykiety zmiennej wiersza w lewo (np. Jako pierwszej linii etykiety dwuliniowej sub-działki)?Python seaborn facetGrid: Czy możliwe jest ustawienie położenia etykiety kategorii wiersza po lewej stronie

Domyślna lokalizacja znajduje się na górze jako część tytułu działki. niestety połączony tekst czasami jest zbyt długi, by legalnie zmieścić się w tej zatłoczonej przestrzeni. Następnie próbowałem użyć opcji margin_titles = True podczas tworzenia instancji obiektu facetGrid. Ale w tym przypadku etykieta zmiennej wiersza znajduje się na zewnątrz legendy, co może być niezręcznie zbyt daleko od wykresu.

tak więc możliwe proste sposoby, aby poprawić estetykę w moim dwa procent wartości myśli:

  1. przesunąć tytuł margines wewnątrz legendy gdy margin_titles = True i legend_out=True
  2. Pozwól zmienną etykietę wiersza mają być wyświetlane po lewej stronie przed etykietą osi y.
  3. Inne pomysły?

Przepraszamy, nie zgromadziliśmy wystarczającej liczby punktów, aby móc dodać przykład wykresu.

Odpowiedz

2

Jasne rzeczy! Wyliczanie na osiach wydaje się działać dobrze.

import seaborn as sns 
import matplotlib.pyplot as plt 
sns.set(style='ticks', color_codes=True) 

tips = sns.load_dataset('tips') 

g = sns.FacetGrid(tips, col='time', row='sex') 
g = g.map(plt.scatter, 'total_bill', 'tip', edgecolor='w') 

for i, axes_row in enumerate(g.axes): 
    for j, axes_col in enumerate(axes_row): 
     row, col = axes_col.get_title().split('|') 

     if i == 0: 
      axes_col.set_title(col.strip()) 
     else: 
      axes_col.set_title('') 

     if j == 0: 
      ylabel = axes_col.get_ylabel() 
      axes_col.set_ylabel(row.strip() + ' | ' + ylabel) 

plt.show() 

enter image description here

Powiązane problemy