熱力圖
缺失值
缺失值視覺化
def isnal_heatmap(d):
plt.figure(figsize=(18,10))
sns.heatmap(d.isnull(), cbar=False, yticklabels=False, cmap='viridis')
plt.title("Missing Data Heatmap")
plt.show()
isnal_heatmap(df)

Corr
相關性視覺化
def draw_corr_heatmap(d):
plt.figure(figsize=(16, 12))
sns.heatmap(d.corr(), annot=True, fmt=".2f", cmap="coolwarm", linewidths=0.1)
plt.title("Correlation Heatmap")
plt.show()
draw_corr_heatmap(df)

配對圖
數值欄位
資料分佈
查看資料分佈
# hue: 分組依據(Target)
# vars: 要視覺化的數值欄位(features)
# diag_kind: 對角線上的圖形類型
sns.pairplot(df, hue='Outcome', vars=['Glucose', 'BMI', 'Age', 'BloodPressure'], diag_kind='hist')
plt.tight_layout()
plt.show()

直方圖
數值欄位
float64 Column視覺化
查看各個數值欄位的資料分佈情況
def show_numeric_data_histplot(d, target_col):
plt.figure(figsize=(15, 12))
plt.suptitle('Histograms of Numerical Columns', fontsize=20)
p_index = 0
ncol_i = [i for i in range(d.shape[1]) if d[d.columns.values[i]].dtype == 'float64']
for i in ncol_i:
p_index += 1
plt.subplot(6, 3, p_index)
f = plt.gca()
f.set_title(d.columns.values[i])
vals = np.size(d.iloc[:, i].unique())
if vals >= 100:
vals = 100
plt.hist(d[d[target_col]==1][d.columns.values[i]], bins=vals, color='green', alpha=0.6)
plt.hist(d[d[target_col]==0][d.columns.values[i]], bins=vals, color='red', alpha=0.6)
plt.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.show()
酒類品質數據集的直方圖 - 是否品質通過:
病人生化值檢測數據集的直方圖 - 是否為糖尿病:

盒鬚圖
數值欄位
散佈圖
檢視2特徵關聯
查看2個特徵與目標之間的關聯

sns.scatterplot(df2,x='LotArea',y='LotFrontage',hue='SalePrice', size="SalePrice")
plt.xlabel('LotArea')
plt.ylabel('LotFrontage')
plt.show()

計數圖
唯一值計數
計數特徵unique數量

plt.figure(figsize=(8, 6))
sns.countplot(data=df, x='CryoSleep', hue='Transported', palette='viridis')
plt.title('CryoSleep vs Target')
plt.xlabel('CryoSleep')
plt.ylabel('Count')
plt.legend(title='Transported')
plt.show()
