我是靠谱客的博主 舒适夕阳,这篇文章主要介绍Seaborn/matplotlib自定义3D(三维)绘图,使用不同颜色区分不同数据类别:商用数据可视化一.数据集 二.选取部分数据并降维三.Seaborn/matplotlib画图,现在分享给大家,希望可以做个参考。
对于低维度数据集,或者高维度数据集在使用pca等方法降维后,有时需要根据标签画出3维图,不同类别标签使用不同颜色。
如下图所示,x,y,z为数据特征,根据类别使用不同颜色。
可见,特征混叠严重,需要更换降维方法。以下,将以 kaggle中Instant Gratification数据集(二分类数据集)为例,在使用pca降维后,根据类别使用不同颜色画图。
一.数据集
Instant Gratification数据集(二分类数据集)有256维特征,目标类别为target。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13import 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()
二.选取部分数据并降维
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13# 截取片段 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画图
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25# 指定不同类别的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)
复制代码
1plt.title('看了那么多,喜欢就点个赞吧')
最后
以上就是舒适夕阳最近收集整理的关于Seaborn/matplotlib自定义3D(三维)绘图,使用不同颜色区分不同数据类别:商用数据可视化一.数据集 二.选取部分数据并降维三.Seaborn/matplotlib画图的全部内容,更多相关Seaborn/matplotlib自定义3D(三维)绘图,使用不同颜色区分不同数据类别:商用数据可视化一内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复