2017-05-05 2 views
2

Ich möchte Pfeile über alle Panels eines facetGrid zeichnen.Zeichner über Seaborn facetGrid

In diesem Dummy Beispiel möchte ich auf alle Platten den gleichen Pfeil zeichnen:

import numpy as np 
import pandas as pd 
import seaborn as sns 
import matplotlib.pylab as plt 


datDf=pd.DataFrame({'values':np.random.randint(0,100,100)}) 
datDf['group']=np.random.randint(0,5,100) 
g = sns.FacetGrid(datDf, col="group", 
        col_wrap=3, 
        size=4.5, 
        sharex=True, sharey=True, despine=False) 
g.map(plt.plot,'values') 

for ax in g.axes: 
    arrow=plt.arrow(0,0,50,50,width=5, 
      length_includes_head=True, 
      head_width=5*2, 
      color='gray') 
    ax.add_artist(arrow) 

ich diesen Fehler erhalte:

Valueerror: nicht die Achsen zurücksetzen. Sie versuchen wahrscheinlich, einen Interpreten in mehr als einer Achse wiederzuverwenden, der nicht unterstützt wird.

Was ist der richtige Weg, um Künstler auf facetGrids zu zeichnen?

+0

http://seaborn.pydata.org/tutorial/axis_grids.html#mapping-custom-functions-onto-the-grid –

Antwort

2

Sie können ax.arrow anstelle von plt.arrow verwenden, um einen Pfeil auf den Achsen zu zeichnen.

Dies sollte funktionieren:

for ax in g.axes: 
    ax.arrow(0,0,50,50,width=5, 
      length_includes_head=True, 
      head_width=5*2, 
      color='gray') 
Verwandte Themen