您可以从中
collections创建的信息
swarmplot。
swarmplot实际返回matplotlib
Axes实例,然后从那里可以找到
PathCollections它创建的实例。要获取职位,我们可以使用
.get_offsets()。
这是您的示例,进行了修改以查找并打印群限制,然后使用它们在群周围绘制方框。
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sbfrom matplotlib.patches import Rectangle# Generate dummy data.a = np.random.random(75)b = np.random.random(75) - 0.6c = np.random.random(75) + 0.75# Collate into a Dataframedf = pd.Dataframe({'a': a, 'b': b, 'c': c}) df.columns = [list(['WT', 'MUT', 'WTxMUT']), list(['Parent', 'Parent', 'Offspring'])]df.columns.names = ['Genotype', 'Status']df_melt = pd.melt(df)ax = sb.swarmplot(data = df_melt, x = "Status", y = "value", hue = "Genotype")def getdatalim(coll): x,y = np.array(coll.get_offsets()).T try: print 'xmin={}, xmax={}, ymin={}, ymax={}'.format( x.min(), x.max(), y.min(), y.max()) rect = Rectangle((x.min(),y.min()),x.ptp(),y.ptp(),edgecolor='k',facecolor='None',lw=3) ax.add_patch(rect) except ValueError: passgetdatalim(ax.collections[0]) # "Parent"getdatalim(ax.collections[1]) # "Offspring"plt.show()打印:
xmin=-0.107313729132, xmax=0.10661092707, ymin=-0.598534246847, ymax=0.980441247759xmin=0.942829146473, xmax=1.06105941656, ymin=0.761277608688, ymax=1.74729717464
这是图:



