在seaborn facetGrid上画艺术家

时间:2017-05-05 10:26:30

标签: pandas seaborn

我想在facetGrid的所有面板上绘制箭头。

在这个虚拟示例中,我想在所有面板上绘制相同的箭头:

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:无法重置轴。您可能正在尝试在多个不受支持的Axes中重复使用艺术家

在facetGrids上绘制艺术家的正确方法是什么?

1 个答案:

答案 0 :(得分: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')