Морской swarmplot: Получить координаты точки [дубликат]

u просто добавьте при запуске вашей страницы

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

и проверьте свою ссылку src в любой адресной строке браузера, если вы получаете код, это будет работать на вас. Асиф

4
задан cel 14 April 2016 в 06:38
поделиться

1 ответ

Вы можете получить информацию из collections, созданной с помощью swarmplot.

swarmplot фактически возвращает экземпляр matplotlib Axes, и оттуда мы можем найти созданный PathCollections. Чтобы получить позиции, мы можем использовать .get_offsets().

Вот ваш пример, измененный, чтобы найти и распечатать пределы роя, а затем использовать их для построения окна вокруг роев.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb
from matplotlib.patches import Rectangle

# Generate dummy data.
a = np.random.random(75)
b = np.random.random(75) - 0.6
c = np.random.random(75) + 0.75 

# Collate into a DataFrame
df = 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:
        pass

getdatalim(ax.collections[0]) # "Parent"
getdatalim(ax.collections[1]) # "Offspring"

plt.show()

, который печатает:

xmin=-0.107313729132, xmax=0.10661092707, ymin=-0.598534246847, ymax=0.980441247759
xmin=0.942829146473, xmax=1.06105941656, ymin=0.761277608688, ymax=1.74729717464

И вот цифра:

4
ответ дан tom 23 August 2018 в 23:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: