微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Seaborn“无法解释输入”错误

如何解决Seaborn“无法解释输入”错误

我已经阅读了引发了类似异常的帖子(例如:herethere),但由于错误主要是由于错别字,所以它不是特别有用。

下面非常简单的代码引发了我的错误。阅读原始文档和示例无济于事。

import pandas
import seaborn
df=pandas.DataFrame([[0,25.0,100],[0,24.0,95],25.6,90],20,120],21,130],22.5,115],[1,26.0,150],20.0,200],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,y="meter-reading")

我在做什么错了?

PS:Jupyter Notebook和Spyder中都出现了例外情况

解决方法

我猜这是一个错误,因为relplot本身可以扩展多个图形。因此,您可以通过指定sns.scatterplot来绘制图形。我不认为'meter'是彩色编码的,因为它不是类别变量。

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()

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。