如何在Python中的seaborn中将tsplot与FaceGrid一起使用?

如何在Python中的seaborn中将tsplot与FaceGrid一起使用?,python,pandas,matplotlib,seaborn,Python,Pandas,Matplotlib,Seaborn,我试图在seaborn中使用tsplot在FaceGrid中绘制时间进程数据。我有两个实验,“A”和“B”,每个实验都有两个个体(bob和joe)的时间历程测量,有三个重复。我希望网格的每个子图都包含一个给定实验的tsplot(每个个体获得不同的颜色,置信区间来自于重复。数据如下) 代码是: import matplotlib.pylab as plt import seaborn as sns import pandas df = pandas.read_csv("./data.txt",

我试图在seaborn中使用
tsplot
FaceGrid
中绘制时间进程数据。我有两个实验,“A”和“B”,每个实验都有两个个体(
bob
joe
)的时间历程测量,有三个重复。我希望网格的每个子图都包含一个给定实验的
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()至少接受1个参数(给定5个)

如何正确地绘制这一点

更新

我发现这需要
map\u dataframe
。我的新代码是:

g = sns.FacetGrid(df, row="experiment")
g = g.map_dataframe(sns.tsplot, time="t", unit="reps",
                    value="val", condition="name")
除了颜色不正确外,此选项有效:

如何纠正这一点

--

数据为
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的评论:


您必须为tsplot指定一个调色板,以覆盖
FaceGrid
认为它正在用一种颜色打印某些内容的事实。
g.map\u dataframe(…,color=“deep”)
应该这样做


可以帮你吗?@IanS:不,我的问题不是关于FaceGrid和tsplot之间的交互。你必须为
tsplot
指定一个调色板,以覆盖
FaceGrid
认为它是用一种颜色绘制的事实。
g.map\u数据框(…,color=“deep”)
应该这样做。