我是靠谱客的博主 舒适夕阳,最近开发中收集的这篇文章主要介绍Seaborn/matplotlib自定义3D(三维)绘图,使用不同颜色区分不同数据类别:商用数据可视化一.数据集 二.选取部分数据并降维三.Seaborn/matplotlib画图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

对于低维度数据集,或者高维度数据集在使用pca等方法降维后,有时需要根据标签画出3维图,不同类别标签使用不同颜色。

如下图所示,x,y,z为数据特征,根据类别使用不同颜色。

可见,特征混叠严重,需要更换降维方法。以下,将以 kaggle中Instant Gratification数据集(二分类数据集)为例,在使用pca降维后,根据类别使用不同颜色画图。

一.数据集

Instant Gratification数据集(二分类数据集)有256维特征,目标类别为target。

import pandas as pd
import numpy as np

def get_data(path):
    df = pd.read_csv(path, index_col=['id'])
    # df.head()
    x = df.drop('target', axis = 1)
    # X_train.head()
    y = df['target']
    return x, y

x, y = get_data('/kaggle/input/instant-gratification/train.csv')
x.head()

 二.选取部分数据并降维

# 截取片段
x = x[:1000]
y = y[:1000]

# pca降维
from sklearn.decomposition import PCA
pca = PCA(n_components = 3)
x_pca = pca.fit_transform(x)
x_pca

# 融合为新表
pca_df = pd.concat([pd.DataFrame(x_pca, index = x.index, columns = ['n_1', 'n_2', 'n_3']), y], axis = 1)
pca_df.head()

 

其中,n_1到n_3为pca结果,target为类别标签。

此处也可以选择pca后使用归一化,画图更加合理。

三.Seaborn/matplotlib画图

# 指定不同类别的RBG
color = [[1, 0, 0] if element == 0 else [0, 0, 1] for element in y]
color = np.array(color)

# 画图
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

%matplotlib inline

seaborn.set_style("darkgrid")

plt.figure(figsize=(10,8))

axes = plt.axes(projection='3d')
axes.set_xlabel('x')
axes.set_ylabel('y')
axes.set_zlabel('z')

axes.scatter3D(xs = 'n_1', ys = 'n_2', zs = 'n_3', data = pca_df, c = color)

plt.show() 

得到

等等,标题好像加(doge)

plt.title('看了那么多,喜欢就点个赞吧')

最后

以上就是舒适夕阳为你收集整理的Seaborn/matplotlib自定义3D(三维)绘图,使用不同颜色区分不同数据类别:商用数据可视化一.数据集 二.选取部分数据并降维三.Seaborn/matplotlib画图的全部内容,希望文章能够帮你解决Seaborn/matplotlib自定义3D(三维)绘图,使用不同颜色区分不同数据类别:商用数据可视化一.数据集 二.选取部分数据并降维三.Seaborn/matplotlib画图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部