machine-learning - 如何在 5*4 子图中显示 kdeplot?
问题描述
我正在做一个机器学习项目,并且正在使用 seaborn kdeplot 在缩放后显示标准缩放器。但是,无论我更改多大的图形大小,图形都无法显示并且会显示错误:AttributeError: 'numpy.ndarray' object has no attribute 'plot'。我愿意显示的图像是看起来像这样的 5*4 子图: 预期的子图图像
#feature scaling
#since numerical attributes have very different scales,
#we use standardization to get all attributes to have the same scale
import pandas as pd
import numpy as np
from sklearn import preprocessing
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
matplotlib.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])
推荐阅读
- r - 重置闪亮的单选按钮,updateRadioButtons(selected = character(0)) 不起作用
- typescript - 打字稿-对象可能未定义-“修复”类型定义的正确方法
- arrays - 将数据帧数据类型从对象转换为 float64 的问题
- bash - 在管道中添加 wc 结果作为参数
- javascript - 找不到模块 '../xcode' 需要堆栈 - React Native - Expo cli
- haskell - 在 Haskell 中递归期间创建一个静态变量
- sql - 如何为没有已知列的 PostgreSQL 视图编写通用更新触发器?
- r - 如何过滤数据框中不在另一行中事件值的特定时间范围内的行?
- android - 无法使用 ARCore SDK 编译 Unity 项目 - Gradle 出现问题
- java - 无法从 SQLite 表中显示 ListView 元素