Python 多维数据可视化

多维度(3维以上)数据的可视化,用常规的方法不太好实现。本文介绍几种用Python实现的将多维数据展示在二维平面中的方法。

1.数据

以经典的鸢尾花数据集为例(原始数据下载:CSDN或者GitHub)。
以下是5条经过格式处理的数据,为了便于后面可视化展示(格式处理数据集下载:GitHub)。

Sepal LengthSepal WidthPetal LengthPetal WidthSpecies
6.42.85.62.2virginica
52.33.31versicolor
4.92.54.51.7virginica
4.93.11.50.1setosa
5.73.81.70.3setosa

前4列是鸢尾花的4个特征,最后1列是鸢尾花的3种分类。

2.数据可视化

2.1 平行坐标

图中每条垂直的线代表一个特征,表中一行的数据在图中表现为一条折线,不同颜色的线表示不同的类别。

import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import parallel_coordinates

data = pd.read_csv('D:\\iris.csv')

plt.figure('多维度-parallel_coordinates')
plt.title('parallel_coordinates')
parallel_coordinates(data, 'Species', color=['blue', 'green', 'red', 'yellow'])
plt.show()

平行坐标

2.2 RadViz雷达图

4个特征对应于单位圆上的4个点,圆中每一个散点代表表中一行数据。可以想象为每个散点上都有4条线分别连接到4个特征点上,而特征值(经过标准化处理)就表示这4条线施加在散点上的力,每个点的位置恰好使其受力平衡。

import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import radviz

data = pd.read_csv('D:\\iris.csv')

plt.figure('多维度-radviz')
plt.title('radviz')
radviz(data, 'Species', color=['blue', 'green', 'red', 'yellow'])
plt.show()

RadViz

2.3 Andrews曲线

特征值转化为傅里叶序列的系数,不同颜色的曲线代表不同的类别。

import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import andrews_curves

data = pd.read_csv('D:\\iris.csv')

plt.figure('多维度-andrews_curves')
plt.title('andrews_curves')
andrews_curves(data, 'Species', color=['blue', 'green', 'red', 'yellow'])
plt.show()

Andrews曲线

2.4 矩阵图

表示不同特征之间的关系。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

data = pd.read_csv('D:\\iris.csv')

sns.pairplot(data, hue='Species')
plt.show()

矩阵图

2.5 相关系数热力图

表示不同特征之间的相关性(Pearson相关系数),数值越大,相关性越高。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

data = pd.read_csv('D:\\iris.csv')

corr = data.corr()
sns.heatmap(corr, annot=True)
plt.show()

相关系数热力图

3. 参考资料

  1. 多维数据可视化方法,看这一篇就够了
  2. Python数据可视化, 看这一篇就够了
  3. 基于Python的数据可视化:从一维到多维

欢迎关注我的微信公众号:
在这里插入图片描述

  • 15
    点赞
  • 175
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值