在Google Colab中使用sns.scatterplot指定palette='jet'报错,原因是什么?
问题分析与解决
首先看代码里的这一行:
y3=np.exp(-10*x**22)
这里大概率是笔误,把x**2(x的平方)写成了x**22(x的22次方)。
问题影响
- 当
x的绝对值小于1时,x**22会趋近于0,-10*x**22趋近于0,np.exp(0)=1,导致y3绝大多数值都接近1,只有x接近±1时,y3才会变为exp(-10)(约4.5e-5),hue参数的颜色区分度极低,可视化效果完全不符合预期。 - 这段代码本身语法无错误,但笔误会导致运行结果异常,若你遇到运行报错,大概率是环境中库版本兼容问题,但最核心的问题还是这个笔误。
修正后的代码
把x**22改成x**2,同时可以删掉未使用的pandas导入:
import matplotlib.pyplot as plt import numpy as np import seaborn as sns n=200 x=np.linspace(-1,1,n) y1=x**2 y2=np.sin(3*x) y3=np.exp(-10*x**2) # 修正笔误 sns.scatterplot(x=y1,y=y2,hue=y3,legend=False,palette='jet') plt.show()
内容的提问来源于stack exchange,提问作者Mohammad Fallah
相关产品推荐
相关产品推荐

