2015-10-01 27 views
7

Vorrei poter controllare il numero di zecche sugli assi su un grafico Seaborn in Python 3.5. Sono molto abituato ad usare il ggplot di R, quindi ho problemi con funzionalità analoghe in Python.Modificare il numero di zecche sull'asse x nei grafici di origine marina

Come esempio, qui è il tipo di dati che sto attualmente lavorando con:

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"] 

e vorrei fare qualcosa di simile facet_wrap di ggplot() facendo:

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) 

Tuttavia, ottengo i seguenti errori. Il problema sembra essere qualcosa su come impostare le etichette degli assi in FacetGrid, ma non so come risolverlo. Si tratta di un problema con Python 3 o con gli assi specificanti su una trama sfaccettata?

UserWarning: tight_layout : falling back to Agg renderer 

warnings.warn ("tight_layout: ricadendo Tot rendering")

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

risposta

11

set_xticks è un metodo su un oggetto matplotlib assi, ma FacetGrid ha molti assi. È possibile eseguire il loop su di essi e impostare gli xtick su ognuno di essi, ma un modo più semplice è chiamare FacetGrid.set(xticks=np.arange(1,4,1)), che eseguirà il ciclo internamente.