我正在进行一个机器学习项目,并使用seaborn的kdeplot来展示标准化后的标准缩放器。然而,无论我如何调整图形大小,图表都无法显示,并且会出现错误:AttributeError: ‘numpy.ndarray’ object has no attribute ‘plot’。我希望展示的图像是一个5*4的子图,类似于这个:预期的子图图像
#特征缩放#由于数值属性具有非常不同的尺度,#我们使用标准化来使所有属性具有相同的尺度import pandas as pdimport numpy as npfrom sklearn import preprocessingimport matplotlibimport matplotlib.pyplot as pltimport seaborn as sns%matplotlib inlinematplotlib.style.use('ggplot')scaler = preprocessing.StandardScaler()scaled_df = scaler.fit_transform(train_set)scaled_df = pd.DataFrame(scaled_df, columns=["SaleAmount","SaleCount","ReturnAmount","ReturnCount", "KeyedAmount","KeyedCount","VoidRejectAmount","VoidRejectCount","RetrievalAmount", "RetrievalCount","ChargebackAmount","ChargebackCount","DepositAmount","DepositCount", "NetDeposit","AuthorizationAmount","AuthorizationCount","DeclinedAuthorizationAmount","DeclinedAuthorizationCount"])fig, axes = plt.subplots(figsize=(20,10), ncols=5, nrows=4)sns.kdeplot(scaled_df['SaleAmount'], ax=axes[0])sns.kdeplot(scaled_df['SaleCount'], ax=axes[1])sns.kdeplot(scaled_df['ReturnAmount'], ax=axes[2])sns.kdeplot(scaled_df['ReturnCount'], ax=axes[3])sns.kdeplot(scaled_df['KeyedAmount'], ax=axes[4])sns.kdeplot(scaled_df['KeyedCount'], ax=axes[5])sns.kdeplot(scaled_df['VoidRejectAmount'], ax=axes[6])sns.kdeplot(scaled_df['VoidRejectCount'], ax=axes[7])sns.kdeplot(scaled_df['RetrievalAmount'], ax=axes[8])sns.kdeplot(scaled_df['RetrievalCount'], ax=axes[9])sns.kdeplot(scaled_df['ChargebackAmount'], ax=axes[10])sns.kdeplot(scaled_df['ChargebackCount'], ax=axes[11])sns.kdeplot(scaled_df['DepositAmount'], ax=axes[12])sns.kdeplot(scaled_df['DepositCount'], ax=axes[13])sns.kdeplot(scaled_df['NetDeposit'], ax=axes[14])sns.kdeplot(scaled_df['AuthorizationAmount'], ax=axes[15])sns.kdeplot(scaled_df['AuthorizationCount'], ax=axes[16])sns.kdeplot(scaled_df['DeclinedAuthorizationAmount'], ax=axes[17])sns.kdeplot(scaled_df['DeclinedAuthorizationCount'], ax=axes[18])
回答:
你需要知道你有一个二维数组,所以需要像这样做:
sns.kdeplot(scaled_df['DeclinedAuthorizationCount'], ax=axes[9,2])