数据可视化图表分析r语⾔plot函数x轴y轴名字_散点图、箱线图、核密度函数……
数据分析必备的9种可视化图表
全⽂共2286字,预计学习时长9分钟
图源:dayliscrawl
作为数据分析对外输出的关键环节,可视化技术可是数据科学家的必备技能之⼀。各种各样的图标花样繁多,可别被这些炫酷的“造型”吓
退了。
本⽂将介绍九种不同的可视化技术,可以⽤来分析任何数据集,并且⼤多数都只需要少输⼊⼀⾏代码。就两个字,好⽤!
加载数据集和快速浏览数据
为简单起见,使⽤可从scikit-learn库加载的Iris数据集,输⼊以下代码:
from sklearn.datasets importload_irisimport pandas as pddata = load_iris()df = pd.DataFrame(data['data'], columns=data['feature_names'])df['species'] = data['tar
可以看到,我们有⼀个只有5列的数据集。使⽤数据框上的info()函数对其进⾏快速分析: df.info()
如图可见,只有150个条⽬,在任何⼀列中都没有丢失值。
此外,还可以看到前四列有浮点值,⽽最后⼀列只允许出现整数。事实上,根据数据集描述,我们知道“物种”列只取三个值,每个值代表
⼀种花。
要确认这⼀点,可以对该列使⽤unique()函数:
df.species.unique()array([0, 1, 2])
确实,“物种”列只取三个值:0、1和2。
了解了数据集的基本信息之后就可以进⾏可视化了。请注意,如果列中缺少⼀些值,应该对其进⾏删除或填充。我们稍后将讨论的⼀些技术不允许出现丢失值。
线形图
从⼀个简单的线状图开始可视化。选中整个数据框。
df.plot()
如图可见,它已经根据索引值(x轴)绘制了不同颜⾊的所有列值。这是不为函数提供x轴参数时的默认⾏为。
现在看来这个图不是很有⽤。如果x轴是⼀个时间序列,那么线图是⼀个很好的选择。我们可能会在数据中看到⼀些时间上的趋势。
在本例中,只能看到数据是按“物种”列排序的(图中紫⾊的步骤),并且其他列的移动平均值遵循该模式(花瓣长度,特别是红⾊标记的花瓣长度)。
散点图
这是⼀种将两个连续变量之间的关系可视化的完美图表。通过散点图来分析萼⽚长度和萼⽚宽度的关系。
df.plot.scatter(x='sepal length(cm)', y='sepal width (cm)')
为了⽣成此图,需要通过其列名来指定图的x轴和y轴。这个图表显⽰这两个变量之间没有很强的相关性。让我们来检查另⼀对萼⽚长度和花瓣长度:
df.plot.scatter(x='sepal length(cm)', y='petal length (cm)')
在这种情况下,可以看到当萼⽚长度增加时,花瓣长度也会增加(当萼⽚长度⼤于6厘⽶时,增加幅度更⼤)。
饼状图
可以使⽤饼状图来可视化⽬标变量的类计数。我们将在这⾥对正在处理的Iris数据集进⾏处理。同样需要⼀些辅助函数,这次使⽤的是groupby和count。
这⼀类⽬具有完美的⽐例,因为我们的数据集包含每个类的50个条⽬。
注意,必须在这⾥使⽤y参数并将其设置为某个列名。这⾥使⽤了萼⽚长度列,但它可以是任何列,因为所有列的计数都是相同的。
⾯积图
还可以为这个数据集创建⼀个⾯积图。图中包括所有有厘⽶的维度,但是要删除“物种”列,因为这些在本例中没有任何意义。
columns = ['sepal length (cm)','petal length (cm)', 'petal width (cm)', 'sepal width (cm)']df[columns].plot.area()
这张图上的测量值是⼀个接⼀个的。这个图表可以让你直观地检查包含在图表中的每个度量之间的⽐率。所有的数值向之后的条⽬都有⼀个增长的趋势。
条形图
当显⽰条⽬的平均或计数时,这是⼀个很好的图表类型。可以⽤它来计算数据集中每个类型的每个维度的平均值。为此,需要使⽤groupby 和mean函数。
上图⾮常直观,可以看到不同类型和不同柱的平均测量值存在差异。
箱线图
箱线图也是应该⽤于数值变量的可视化技术。它可以为所有的测量列绘制箱线图(不包括物种列,因为对于这个分类变量来说,箱线图没有意义)。
columns = ['sepal length (cm)', 'petallength (cm)', 'petal width (cm)', 'sepal width (cm)']df[columns].plot.box()icks(rotation='vertical')
如图所⽰,所有的箱线图都画在同⼀张图上。由于没有太多的变量来表⽰,所以这对我们来说是很好的。注意,必须旋转x标签,不这样做标签的名称会相互重叠。
柱状图
柱状图对于任何连续变量来说都是⼀个完美的可视化技术。让我们从简单的hist函数开始。
import matplotlib.pyplot as pltdf.hist()plt.tight_layout()
可以看到,这会为数据集中的每个数值变量⽣成⼀个柱状图。要制作图表,就不得不添加⼀些额外的代码⾏。这是我调⽤tight_layout函数的第⼀个导⼊⾏和最后⼀⾏。如果不添加这个,标签和⼦图名可能会重叠并且不可见。
核密度函数
与柱状图类似,可以使⽤核密度函数:
df.plot.kde(subplots=True,figsize=(5,9))
它给出了与柱状图相似的结果。必须在这⾥指定⼀个图形⼤⼩,否则图形会在垂直⽅向上被压得太厉害。
此外,还将subplots参数设置为True,因为在默认情况下,所有的列都会显⽰在同⼀个图表上。
散点矩阵图
这是我最喜欢的数据分析的可视化技术之⼀,因为它可以对数据集中的所有数值及其相关性进⾏快速分析。
默认情况下,它将为数据帧中的所有数字变量对的散点图和所有数字变量的柱状图。
from pandas.plotting importscatter_matrixscatter_matrix(df, figsize=(10, 10))
你将得到这个绘制精美的平⾯图,只⽤⼀⾏代码就能告诉你很多关于数据集的信息。在这组数据中,只需扫⼀眼就能发现这组数据中的⼀些变量之间的相关性。唯⼀需要设置的附加参数是数字尺⼨,这是因为图中的地块⾮常⼩,默认的图表尺⼨很⼩。
可视化技术是你在数据分析的修炼道路上必不可少的⼀关,试试将这些知识应⽤到你所选择的数据集。把数据玩出花,其实很简单。
留⾔点赞关注
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论