gpt4 book ai didi

pandas - 在带有线图的 seaborn FacetGrid 中使用单位

转载 作者:行者123 更新时间:2023-12-05 00:47:48 24 4
gpt4 key购买 nike

这是我的问题的最小、完整和可验证的玩具数据集:

genes = pd.Series(["Gene1"] * 16 + ["Gene2"] * 16)
conditions = pd.Series(np.tile(np.array(["Condition1"] * 8 + ["Condition2"] * 8), 2))
wellID = pd.Series(np.array(["W1"] * 4 + ["W2"] * 4 + ["W3"] * 4 + ["W4"] * 4 + ["W5"] * 4 + ["W6"] * 4 + ["W7"] * 4 + ["W8"] * 4))
fluo = pd.Series(np.array([np.sort(np.random.logistic(size=4)) for _ in range(8)]).flatten())
cycles = pd.Series(np.tile(np.array([0, 1, 2, 3]), 8))
df = pd.concat([genes, conditions, wellID, cycles, fluo], axis=1)
df.columns = ["Gene", "Condition", "WellID", "Cycle", "Fluo"]

它由 2 个基因组成,用于 2 个条件,每个 2 个重复(1 个重复有 1 个唯一的 WellID,其中有 4 个循环,每个循环有 1 个测量的荧光点)。

我可以用这个命令创建我想要分离一个基因的线图:

sns.lineplot(x="Cycle", y="Fluo", hue="Condition", units="WellID", estimator=None, data=df.loc[df.Gene == "Gene1"])

我必须同时使用单位和估计器,这样我才能看到 2 个重复(而不是每个基因/条件的聚合曲线。

最后,我想使用 FacetGrid 来查看这两个基因的图,所以我做了:

g = sns.FacetGrid(df, col="Gene", hue="Condition", col_wrap=5)
g.map(sns.lineplot, "Cycle", "Fluo");

但是如果我有关键字“units”和“estimator”,我会收到一条错误消息,提示“ValueError:无法解释输入'WellID'”。

我只能显示聚合了 2 个重复的图。

最佳答案

将其作为参数传递给 lineplot 函数

g = sns.FacetGrid(df, col="Gene", hue="Condition", col_wrap=5)
g.map(sns.lineplot, "Cycle","Fluo", "WellID")
plt.show()

enter image description here

关于pandas - 在带有线图的 seaborn FacetGrid 中使用单位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55104176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com