- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有以下数据:
import pandas as pd
import numpy as np
# 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)
然后我使用这段代码在 seaborn 中绘制它:
import seaborn as sb
sb.swarmplot(data = df_melt, x = "Status", y = "value", hue = "Genotype")
如何获得每个组的 x-span?例如,Parent 组群图的水平跨度范围是多少?
最佳答案
您可以从 swarmplot
创建的 collections
中获取信息。
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
这是图:
关于python - 从 seaborn swarmplot 获取标绘点的跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36615354/
有什么方法可以在 seaborn 的群图中的离散轴上使用非均匀间距? 这是一个例子: import pandas as pd import numpy as np import seaborn as
对于seaborn swarmplot,我想为不同的点提供不同的标记大小。 例如,在下面的代码段中,我想使用 标记尺寸键入 绘图数据指定群图中点的大小。根据 seaborn 文档,swarmplot
我有: import numpy as np import pandas as pd import seaborn as sb import matplotlib.pyplot as plt # Ge
我有: import numpy as np import pandas as pd import seaborn as sb import matplotlib.pyplot as plt # Ge
情况 我有以下 Pandas 数据集: |user_id|total|is_fat| |-------|-----|------| |1 |100 |1 | |2 |15
我有以下数据: import pandas as pd import numpy as np # Generate dummy data. a = np.random.random(75) b = n
我用 seaborn 制作了一个 swarmplot,但我似乎找不到让这些点相互重叠的选项。 它们彼此重叠,但仅在两侧重叠。 我希望它们在放不下的时候到处重叠,但现在它们只在边上重叠。 data =
我正在尝试绘制一个seaborn swarmplot,其中col[2] 是频率,col[3] 是要分组的类。下面给出了输入和代码。输入 tweetcricscore,51,high active tw
我想在seaborn中过度绘制一个群图和regplot,这样我就可以在我的群图中有一条y=x线。 这是我的代码: import matplotlib.pyplot as plt import seab
我想生成一个 seaborn.swarmplot,其中单个数据点的颜色映射到颜色图。 我有一个类似这样的 DataFrame: In[48]:df Out[48]: a c Key
我有一个包含多列的数据框,其中每列有 5 到 2535 个条目(其余为 NAN)。当列有超过 9 个数字条目时,我想绘制一个箱线图,否则绘制一个群图。我用我疯狂的绘画技巧创造了一个例子。 问题是我只能
我有以下数据: import pandas as pd import numpy as np # Generate dummy data. a = np.random.random(75) b = n
我尝试使用 seaborn 的 pointlot 在 swarmplot 上绘制组明智的中值。即使我在第二个调用 pointPlot,点图最终还是在 swarmplot 后面。如何更改“图层顺序”,使
在下面基于 seaborn 的绘图中,我制作了一个由群图覆盖的箱形图。两者都是色调子集。有什么办法可以不让它们在图例中重复两次吗? 这是我的代码: ax = sns.boxplot(x=name_xa
我想使用带有循环范围的 plt.subplots() 来绘制 swarmplot 当特征 plate 是不同的值时。 所以我用一个简单的图来编码,它绝对是正确的。 #I just use i = 5
我正在努力让 swarmplot 与 pandas 一起工作。我有一个名为 SIAggs 的 3d numpy array,我使用 pandas 将其切片,如下所示: rand_center =
Pandas dataframe 有 "user_fair , user_good, rating"这 3 列。 我正在使用 sns.swarmplot 绘制“user_fair vs rating”
Pandas dataframe 有 "user_fair , user_good, rating"这 3 列。 我正在使用 sns.swarmplot 绘制“user_fair vs rating”
我是一名优秀的程序员,十分优秀!