最近在做一个机器学习入门项目,鸢尾花种类的预测,在利用sns.boxplot()绘制箱型图的时候,程序报错:
AttributeError: 'numpy.ndarray' object has no attribute 'boxplot'
我的原代码是:
fig, axes = plt.subplots(2,2,figsize=(15,8))
sns.boxplot(x="species", y ="sepal_length", data = df, palette="Pastel1" , ax = axes[0])
sns.boxplot(x="species", y ="sepal_width", data = df, palette="Pastel1" , ax = axes[1])
sns.boxplot(x="species", y ="petal_length", data = df, palette="Pastel1" , ax = axes[2])
sns.boxplot(x="species", y ="petal_width", data = df, palette="Pastel1" , ax = axes[3])
我的目的是想绘制出每种鸢尾花的四个特征的箱型图,在一张画步上进行绘制,我是参考了别人的代码。
画布是2维的,但是这里面我天真的以为ax = axes[0],按照一维的索引即可实现绘制,所这里面的索引需要按照二维进行处理。改正后的代码:
fig, axes = plt.subplots(2,2,figsize=(15,8))
sns.boxplot(x="species", y ="sepal_length", data = df, palette="Pastel1" , ax = axes[0,0])
sns.boxplot(x="species", y ="sepal_width", data = df, palette="Pastel1" , ax = axes[0,1])
sns.boxplot(x="species", y ="petal_length", data = df, palette="Pastel1" , ax = axes[1,0])
sns.boxplot(x="species", y ="petal_width", data = df, palette="Pastel1" , ax = axes[1,1])