2015-10-01 8 views
7

Ich möchte in der Lage sein, die Anzahl der Achsen Ticks auf einem Seaborn-Plot in Python 3.5 zu steuern. Ich bin sehr daran gewöhnt, Rs ggplot zu verwenden, daher habe ich Probleme mit analogen Funktionen in Python.Ändern der Anzahl der X-Achsen-Ticks in Seaborn-Plots

Als Beispiel ist hier die Art der Daten, arbeite ich zur Zeit mit:

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

Und ich möchte so etwas wie ggplot des facet_wrap() tun, indem Sie:

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) 

Ich bekomme jedoch folgende Fehler. Das Problem scheint etwas über das Setzen von Achsenbeschriftungen in FacetGrid zu sein, aber ich weiß nicht, wie ich es lösen soll. Ist das ein Problem mit Python 3 oder mit Achsen in einem facettierten Diagramm?

UserWarning: tight_layout : falling back to Agg renderer 

warnings.warn:

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

Antwort

11

set_xticks ist eine Methode auf einem matplotlib Achsen Objekt, sondern FacetGrid hat viele Achsen ("tight_layout zurück zu Agg Renderer fallen"). Du könntest sie überschleifen und die Xticks auf jedem setzen, aber ein einfacherer Weg ist es, FacetGrid.set(xticks=np.arange(1,4,1)) aufzurufen, was die Schleife intern machen wird.