我是靠谱客的博主 舒适夕阳,最近开发中收集的这篇文章主要介绍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画图所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复