在模型构建中,数据扮演着至关重要的角色。通过数据可视化,可以对数据的分布类型做出推断。由于许多统计测试要求数据呈正态分布,因此努力使数据正态分布总是有益的。分布图还有助于识别和处理异常值。可以根据分布图大致估计数据的离散程度。
Python提供了多种库和函数来可视化数据的分布。直方图是用于绘制分布的常用图表之一。如果想要可视化分类变量中每个类别的分布,该怎么办呢?在本文中,将学习如何绘制岭线图。
岭线图,也称为Joy Plot,是一种用于可视化多个类别或组的分布的图表。每个类别或类别组产生一个密度曲线,这些曲线相互重叠,形成了一幅美丽的图表。Joy Plot的名字来源于Joy Division在1979年的专辑封面《Unknown Pleasures》。当类别或组的数量很大时,Joy Plot被广泛使用。尽管图表可能会变得杂乱,但整体上它既美观又富有意义。这些图表在y轴上有类别或组,在x轴上有数值特征。
岭线图的一个流行用例是随时间测量数值变量。例如,可以测量过去十年的温度。在这里,它将为10个类别创建10条水平线,每个类别将绘制该年温度的分布。这将帮助了解那一年的情况,同时分析过去10年的趋势。有趣的是,可能会发现与10年前的温度相比,温度的分布有所增加。
在Python中,可以使用多个库构建岭线图,包括主流的Matplotlib和Plotly库。但是使用joypy库绘制岭线图非常简单。因此,本文将继续使用joypy。
!pip install joypy
import pandas as pd
from joypy import joyplot
import matplotlib.pyplot as plt
df = pd.read_csv("Admission_Predict.csv")
这里使用的是为预测印度学生研究生课程录取而构建的数据集。数据集已从Kaggle下载。在本文中,将尝试基于CGPA绘制大学评级的岭线图。
print(df.info())
df['University Rating'] = df['University Rating'].astype(str)
在获取信息后,发现该数据集没有分类列。希望为图表绘制大学评级。因此,将大学评级值转换为字符串类型。
joyplot(df, by='University Rating', column='CGPA')
plt.xlabel("CGPA")
plt.show()
可以快速解释,当从大学评级1移动到5时,CGPA的分布也向右移动。因此,评级较高的大学需要更高的CGPA。此外,数据中存在一些异常值,因为看到密度曲线延伸到10 CGPA标记之外,CGPA永远不会超过10的值。
在上一节中,绘制了一个基本的岭线图。但是,也可以对图表进行美化,感谢joyplot()接受的众多参数。让看看其中的一些:
joyplot(df, by='University Rating', column='CGPA', color='Orange', fade=True)
plt.show()
执行此代码后,得到:
joyplot(df, by='University Rating', column='CGPA', colormap=cm.autumn, fade=True,
range_style='own', figsize=(10,6))
plt.show()
执行此代码后,得到:
joyplot(df, by='University Rating', column='CGPA', colormap=cm.autumn, fade=True,
range_style='own', figsize=(10,6),
title='基于大学评级的学生CGPA分布')
plt.show()
执行此代码后,得到:
joyplot(df, by='University Rating', column='CGPA', color='Orange', fade=True,
range_style='own', figsize=(10,6), hist=True, overlap=0,
title='基于大学评级的学生CGPA分布')
plt.show()
在这里,为每个大学评级绘制了直方图。此外,指定了overlap值为0。这将使组轴彼此分开。
在本文中,学习了岭线图(Joy Plot)的概念以及如何在Python中使用joypy库来绘制它们。还学习了如何美化图表以最大化信息获取。joyplot()的参数还有许多其他岭线图的变体。数据未经清洗,可以从图表中识别出异常值,因为一些曲线穿过了CGPA值10,而CGPA不能超过10。如前所述,岭线图可以容纳大量的类别组。在岭线图上绘制直方图而不是密度曲线并不是一个流行的选项,但了解更多总是好的。岭线图也可以在其他BI工具如Tableau中绘制,或者使用其他库如Plotly。可以尝试使用不同的数值特征或不同的分类和数值特征组合,在同一个数据集上绘制不同的岭线图。
在上与联系。