当我尝试绘制 seaborn 热图时出现错误
TypeError: 输入类型不支持 ufunc ‘isnan’,并且根据转换规则 “safe” 无法将输入安全地强制转换为任何受支持的类型
我的代码如下
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.read_table(r"C:\Results.CST", sep='\s+',header=11, engine = 'python')
df2 = cridim[['Bottom','Location_X','Location_Y',]] # Bottom , location X and Location Y are my column labels
df3 = df2.pivot('Location_X','Location_Y','Bottom') # create pivot table for results
plt.figure(figsize=(15,15))
pivot_table = df3
plt.xlabel('X',size = 10)
plt.ylabel('Y',size = 10)
plt.title('btm CD',size = 10)
sns.heatmap(pivot_table, annot=False, fmt=".1f", linewidths = 0.5, square = True, cmap = 'RdYlBu', vmin=2900, vmax = 3500)
plt.show()
在我的数据中包含77行和77列,其中只有651个有数据,其他空坐标在数据框中表示为无
seaborn 热图可以绘制多少数据有限制吗?
我不确定为什么会出现上述错误,我已将其写入 csv 文件,结果没问题。
此外,我尝试将值替换为“0”和空字符串,但它仍然返回 Typeerror
原文由 SA. 发布,翻译遵循 CC BY-SA 4.0 许可协议
当您尝试使用 seaborn 绘制图形并且某些值不是数字时,会发生此错误。
seaborn 试图将所有数据强制转换为数字,但有时会出现此错误。解决方案是确保数据中没有 NaN 或字符串。
在调用 seaborn 图形库之前尝试使用 df.astype(float) 。确保您也没有任何 NaN。