2015-10-01 16 views
7

Chciałbym móc kontrolować liczbę tyknięć osi na wykresie seaborn w Pythonie 3.5. Jestem bardzo przyzwyczajony do używania ggplota R, więc mam problemy z analogiczną funkcjonalnością w Pythonie.Zmiana liczby tyknięć osi X na działkach morskich

Jako przykład, tutaj jest rodzaj danych Obecnie pracuję z:

test = pd.DataFrame() 
test["X"] = [1,2,3,1,2,3] 
test["Y"] = [1,5,3,7,2,4] 
test["Category"] = ["A", "A", "A", "B", "B", "B"] 

I chciałbym zrobić coś takiego facet_wrap ggplot za(), wykonując:

sns.set(style = "ticks", color_codes = True) 
test_plot = sns.FacetGrid(test, col = "Category") 
test_plot = (test_plot.map(sns.plt.plot, "X", "Y").add_legend()) 
test_plot.set_xticks(np.arange(1,4,1)) 
sns.plt.show(test_plot) 

Jednak otrzymuję następujące błędy. Problem wydaje się być związany z ustawianiem etykiet osi w FacetGrid, ale nie wiem jak go rozwiązać. Czy jest to problem z Pythonem 3 lub z określaniem osi na fasetowanym wykresie?

UserWarning: tight_layout : falling back to Agg renderer 

warnings.warn ("tight_layout: spada z powrotem do AGG renderer")

test_plot.set_xticks(np.arange(1,4,1)) 
AttributeError: 'FacetGrid' object has no attribute 'set_xticks' 

Odpowiedz

11

set_xticks to metoda na matplotlib Osie obiektu, ale FacetGrid ma wiele osi. Możesz na nich pętli i ustawić xticks na każdym z nich, ale łatwiej jest wywołać FacetGrid.set(xticks=np.arange(1,4,1)), który wykona pętlę wewnętrznie.

Powiązane problemy