df python 增加数据_python高维数据型图表平行坐标系列

本文介绍了如何使用Python的pandas库绘制平行坐标系图,探讨了平行坐标系的优缺点,并展示了如何进行多数据系列的平行坐标系图绘制,包括Andrews曲线和处理大数据集的挑战。
摘要由CSDN通过智能技术生成

5af2c8fb6f41c6a2a57fb3b3150c59ed.png

平行坐标系图

平行坐标系图(parallel coordinates chart)

  • 是一种用来呈现多变量;

  • 或者高维度数据的可视化技术;

  • 用它可以很好地呈现多个变量之间的关系;

平行坐标系背景

  • 平行坐标系由Alfred Inselberg在1985年提出并在他以后工作中得到发展;

  • 1990年E.J.Wegman提出使用平行坐标系进行数据探索性分析和数据可视化设计;

  • 平行坐标系图将多维数据属性空间通过条等距离的平行轴映射到二维平面上;

  • 每一条轴线代表一个属性维;

  • 轴线上的取值范围从对应属性的最小值到最大值均匀分布;

  • 每一个数据项都可以依据其属性取值而用一条跨越条平行轴的折线段表示;

  • 相似的对象就具有相似的折线走向趋势;

优点

  • 表达数据关系非常直观,易于理解;

缺点

  • 表达维数决定于屏幕的水平宽度;

  • 当维数增加时,引起垂直轴靠近,辨认数据结构和关系稍显困难;

  • 当对大数据集进行可视化时,由于折线密度增加产生大量交叠线,难以辨认;

  • 坐标系之间依赖关系很强,平行轴的安排序列性也是影响发现数据之间关系的因素;

绘制平行坐标系图

  • pandas包的parallel_coordinates()函数可以实现多数据系列平行坐标系图;

  • 要使用sklearn包的scale()函数对数据进行标注化处理;

  • 将数据按属性/列减去其属性/列的均值;

  • 并除以其属性/列的方差;

  • 最终对每个属性/每列来说所有数据都聚集在0附近,方差为1;

多数据系列

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from pandas.plotting import parallel_coordinates,andrews_curves

from sklearn.preprocessing import scale

df=pd.read_csv('d:\python\out\ParallelCoordinatesD.csv')

df['Class']=[ "Class1" if d>523 else "Class2" for d in df['reading']]

df.iloc[:,range(0,df.shape[1]-1)] = scale(df.iloc[:,range(0,df.shape[1]-1)] )

fig =plt.figure(figsize=(5.5,4.5), dpi=100)

parallel_coordinates(df,'Class',color=["#45BFFC","#90C539" ],linewidth=1)

plt.grid(b=0, which='both', axis='both')

plt.legend(loc="center right",

bbox_to_anchor=(1.25, 0, 0, 1),edgecolor='none',facecolor='none',title='Group')

ax = plt.gca()

ax.xaxis.set_ticks_position('top')

ax.spines['top'].set_color('none')

ax.spines['bottom'].set_color('none')

plt.show()

Andrews曲线

#Andrews曲线

#Andrews曲线将每个样本的属性值转化为傅里叶序列的系数来创建曲线。

#通过将每一类曲线标成不同颜色可以可视化聚类数据,属于相同类别的样本的曲线通常更加接近并构成了更大的结构。

#iris.csv鸢尾花数据

import pandas as pd

import matplotlib.pyplot as plt

%matplotlib inline

df = pd.read_csv('d:\python\out\iris.csv')

df.head()

from pandas.plotting import andrews_curves

plt.figure()

andrews_curves(df, 'variety')

多数据平行坐标系图

#平行坐标

#平行坐标可以看到数据中的类别以及从视觉上估计其他的统计量。

#使用平行坐标时,每个点用线段联接,每个垂直的线代表一个属性,一组联接的线段表示一个数据点。可能是一类的数据点会更加接近。

#iris.csv鸢尾花数据

import pandas as pd

import matplotlib.pyplot as plt

%matplotlib inline

df = pd.read_csv('d:\python\out\iris.csv')

df.head()

from pandas.plotting import parallel_coordinates

plt.figure()

parallel_coordinates(df, 'variety')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值