2017-05-05 40 views
2

我想在facetGrid的所有面板上繪製箭頭。在seaborn facet上繪製藝術家網格

在這個虛擬的例子,我想利用所有面板相同箭頭:

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) 

我收到此錯誤:

ValueError異常:不能復位的軸。您可能試圖在不支持的多個軸上重新使用藝術家

在facetGrid上繪製藝術家的正確方法是什麼?

+0

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

回答

2

您可以使用ax.arrow而不是plt.arrow在軸上繪製箭頭。

這應該工作:

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