gpt4 book ai didi

python - 如何在 Python 的 seaborn 中将 tsplot 与 FacetGrid 一起使用?

转载 作者:太空狗 更新时间:2023-10-30 01:32:59 30 4
gpt4 key购买 nike

我正在尝试在 seaborn 中使用 tsplotFacetGrid 中绘制时间进程数据。我有两个实验,“A”和“B”,每个实验都有两个人(bobjoe)的时间过程测量,三个重复。我希望网格的每个子图都包含一个给定实验的 tsplot(其中每个人都有不同的颜色,置信区间来自重复。数据如下。

代码是:

import matplotlib.pylab as plt
import seaborn as sns
import pandas

df = pandas.read_csv("./data.txt", sep="\t")
sns.set(style="ticks", color_codes=True)
plt.figure()
g = sns.FacetGrid(df, col="t", hue="name", row="experiment")
g = g.map(sns.tsplot, time="t", value="val", unit="reps",
condition="name")
plt.show()

它给出了错误:TypeError: tsplot() takes at least 1 argument (5 given)

如何正确绘制?

更新:

我发现这需要map_dataframe。我的新代码是:

g = sns.FacetGrid(df, row="experiment")
g = g.map_dataframe(sns.tsplot, time="t", unit="reps",
value="val", condition="name")

除了颜色不正确之外,这可行:

colors not showing up in tsplot with facetgrid

如何纠正?

--

数据是data.txt:

t   name    reps    val experiment
0 bob 1 3.3 A
0 bob 2 4.0 A
0 bob 3 3.8 A
5 bob 1 6.0 A
5 bob 2 6.4 A
5 bob 3 6.9 A
10 bob 1 9.99 A
10 bob 2 9.1 A
10 bob 3 9.0 A
0 joe 1 2.1 A
0 joe 2 2.2 A
0 joe 3 2.5 A
5 joe 1 4.5 A
5 joe 2 4.1 A
5 joe 3 4.0 A
10 joe 1 6.8 A
10 joe 2 6.1 A
10 joe 3 6.2 A
0 bob 1 2.3 B
0 bob 2 3.0 B
0 bob 3 2.8 B
5 bob 1 5.0 B
5 bob 2 5.4 B
5 bob 3 5.9 B
10 bob 1 10.99 B
10 bob 2 10.1 B
10 bob 3 10.0 B
0 joe 1 3.1 B
0 joe 2 3.2 B
0 joe 3 3.5 B
5 joe 1 3.5 B
5 joe 2 3.1 B
5 joe 3 3.0 B
10 joe 1 7.8 B
10 joe 2 7.3 B
10 joe 3 7.2 B

最佳答案

解决方案在@mwaskom 的评论中:

You have to specify a color palette to tsplot to override the fact that FacetGrid thinks it is plotting something in one color. g.map_dataframe(..., color="deep") should do it.

关于python - 如何在 Python 的 seaborn 中将 tsplot 与 FacetGrid 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37416405/

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