python - Seaborn“无法解释输入”错误
问题描述
我已经阅读了引发类似异常的帖子(即:here和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
。我不认为“仪表”是用颜色编码的,因为它不是类别变量。
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()
推荐阅读
- javascript - 如何仅使用拖放 java 脚本上传文本文件
- node.js - 如何更改中间件 node.js 中的响应标头
- email - list-unsubscribe-post 如何工作以及电子邮件客户端是否等待 http post url 的响应
- powerbi - PowerBI - 并行自动更新问题
- java - Http 状态 500 - 内部服务器错误 Glassfish
- apache-spark - PySpark:最快的收集,保持订单
- java - 如何在 Java(Android)中将 OutputStream 转换为 String?
- sql - Sqoop 导入错误 -- SQL 命令未正确结束
- javascript - 我们如何在反应的输入中设置两个值
- javascript - 使用 javscript 获取 api 失败