2016-05-26 8 views
2

Wie kann ich seaborn.despine davon abhalten, beide Y-Skalen auf die linke Seite meiner Handlung zu setzen? Das Beste, was ich mit so weit kommen habe, ist:Seaborn despine mit zwei Y-Skalen (Twinx)

import matplotlib.pyplot as plt 
import seaborn as sns 
import numpy as np 

sns.set_style("white") 

fig, ax = plt.subplots() 
ax.plot(np.random.rand(10)) 
ax2 =ax.twinx() 
ax2.plot(100*np.random.rand(10)) 
sns.despine(ax=ax, right=True, left=True) 
sns.despine(ax=ax2, left=True, right=False) 

Aber jede andere Kombination wird entweder nicht die y-Achsen Despine oder die rechte Achse auf der linken Seite setzen.

Ausgabe des oben: (gewünschte Ausgangs hat keine Stachel, nur Zahlen links und rechts)

enter image description here

+1

nicht sicher, ob ich das richtig verstanden, denn wenn ich Ihr Snippet laufen bekomme ich eine y-Skala auf der einen Seite und einer y-Skala auf der anderen Seite. Willst du das nicht wollen? – giosans

+0

vielleicht können Sie eine Figur hinzufügen .. – giosans

+0

Fairer Punkt - Ich habe den Seaborn-Stil in meiner Frage nicht gesetzt, was Despining unnötig macht! –

Antwort

4

Ich denke, das ist, was Sie dann wollen.

import matplotlib.pyplot as plt 
import seaborn as sns 
import numpy as np 

sns.set_style("white") 

fig, ax = plt.subplots() 
ax.plot(np.random.rand(10)) 
ax2 =ax.twinx() 
ax2.plot(100*np.random.rand(10)) 
sns.despine(ax=ax, right=True, left=True) 
sns.despine(ax=ax2, left=True, right=False) 
ax2.spines['right'].set_color('white') 

no spines, just numbers on left and right

+1

Wenn Sie die Achsenlinie auf beiden Seiten zeigen wollen (was ich machen wollte), dann machen Sie das so: '' ' sns.despine (ax = ax, rechts = True, left = False) sns.despine (ax = ax2, left = True, right = False) '' ' –