Seaborn 'Could not interpret input' 错误

Seaborn 'Could not interpret input' error

我读过引发类似异常的帖子(即:, and there),但不是特别有用,因为错误基本上是由于拼写错误造成的。

下面是引发我的错误的非常简单的代码。阅读 seaborn 文档和示例没有帮助。

import pandas
import seaborn
df=pandas.DataFrame([[0,25.0,100],[0,24.0,95],[0,25.6,90],[0,20,120],[0,21,130],[0,22.5,115],[1,25.0,100],[1,26.0,150],[1,24.0,120],[1,20.0,200],[1,15.0,250]], columns=["meter","T°@T","meter-reading"])
df

输出:

meter   T°@T    meter-reading
0   0   25.0    100
1   0   24.0    95
2   0   25.6    90
3   0   20.0    120
4   0   21.0    130
5   0   22.5    115
6   1   25.0    100
7   1   26.0    150
8   1   24.0    120
9   1   20.0    200
10  1   15.0    250

然后尝试绘制 FacetGrid:

g=seaborn.FacetGrid(data=df, col="meter").map(seaborn.relplot, x="T°@T",y="meter-reading")


Error: Could not interpret input 'T°@T'

非常奇怪的是,.map 遇到问题,但其他代码工作正常:

seaborn.relplot(data=df,x="T°@T",y="meter-reading")

我做错了什么?

PS: Jupyter Notebook 和 Spyder 都出现异常

我猜这是一个错误,因为 relplot 本身可以展开多个图形。因此,您可以通过指定 sns.scatterplot 来绘制图形。我不认为 `meter' 是 color-coded 因为它不是类别变量。

import matplotlib.pyplot as plt
import seaborn as sns

g = sns.FacetGrid(data=df, col="meter")
g.map_dataframe(sns.scatterplot, x=df["T°@T"], y=df["meter-reading"], hue='meter') 
g.set_axis_labels('T°@T','meter-reading')
g.add_legend()