如何解决Seaborn“无法解释输入”错误
我已经阅读了引发了类似异常的帖子(例如:here和there),但由于错误主要是由于错别字,所以它不是特别有用。
下面非常简单的代码引发了我的错误。阅读原始文档和示例无济于事。
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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。