使用散点图可视化数据

哈Ha! 我将为您呈现George Seif撰写的文章“您需要了解的有关数据可视化散点图的所有知识”的翻译。

如果您从事数据的分析和可视化,那么很可能将不得不处理散点图。 尽管它很简单,但散点图是用于可视化数据的强大工具。 通过操纵颜色,大小和形状,可以提供散点图的灵活性和代表性。

在本文中,您将学到几乎所有需要使用散点图进行数据可视化的知识。 我们将尝试在python代码中使用时解析所有必要的参数。 您还可以找到一些实用技巧。

回归大厦


即使是散点图的最原始用法,也已经可以很好地概述我们的数据。 在图1中,我们已经可以看到组合数据的孤岛,并快速识别异常值。

图片
图1



适当的回归线从视觉上简化了识别靠近中间点的任务。 在图2中,我们绘制了折线图。 很容易看到在这种情况下线性函数不具有代表性,因为许多点都离直线很远。

图片
图2



图3使用4阶多项式,看起来更有希望。 似乎要对此数据集建模,我们肯定需要一个阶数为4的多项式。

图片
图3



import seaborn as sns import matplotlib.pyplot as plt df = sns.load_dataset('iris') # A regular scatter plot sns.regplot(x=df["sepal_length"], y=df["sepal_width"], fit_reg=False) plt.show() # A scatter plot with a linear regression fit: sns.regplot(x=df["sepal_length"], y=df["sepal_width"], fit_reg=True) plt.show() # A scatter plot with a polynomial regression fit: sns.regplot(x=df["sepal_length"], y=df["sepal_width"], fit_reg=True, order=4) plt.show() 

点的颜色和形状


颜色和形状可用于可视化数据集中的各种类别。 颜色和形状在视觉上非常清晰。 当您查看一组点具有不同形状的颜色的图形时,很明显这些点属于不同的组。

图4显示了按颜色分组的类。 图5显示了按颜色和形状分隔的类。 在这两种情况下,查看分组都容易得多。 现在我们知道,将setosa类和我们应该重点关注的部分分开将很容易。 同样清楚的是,单个折线图将无法分隔绿色和橙色点。 因此,我们需要添加一些内容以显示更多尺寸。

颜色和形状之间的选择成为首选。 就个人而言,我觉得颜色更清晰,更直观,但选择始终是您自己的。

图片
图4



图片
图5



 import seaborn as sns import matplotlib.pyplot as plt df = sns.load_dataset('iris') # Use the 'hue' argument to provide a factor variable sns.lmplot( x="sepal_length", y="sepal_width", data=df, fit_reg=False, hue='species', legend=False) plt.legend(loc='lower right') plt.show() sns.lmplot( x="sepal_length", y="sepal_width", data=df, fit_reg=False, hue='species', legend=False, markers=["o", "P", "D"]) plt.legend(loc='lower right') plt.show() 

边际直方图


图6显示了带有边际直方图的图形示例。边际直方图叠加在顶部和侧面,代表对象沿横坐标和纵坐标的点分布。 这个很小的增加对于查明点分布和离群值非常有用。

例如,在图6中,我们显然看到3.0标记附近的点高度集中。 借助此直方图,您可以确定浓度水平。 在右侧,您可以看到3.0标记周围的点数至少是其他任何离散范围的三倍。 同样,使用右侧直方图,可以清楚地识别出明显的离群值在3.75标记之上。 上图显示,沿X轴的点分布更加均匀,但最右边的异常点除外。

图片
图6



 import seaborn as sns import matplotlib.pyplot as plt df = sns.load_dataset('iris') sns.jointplot(x=df["sepal_length"], y=df["sepal_width"], kind='scatter') plt.show() 

气泡图


使用气泡图,我们需要使用几个变量来编码信息。 这种可视化类型中固有的新参数是大小。 在图7中,我们显示了根据吃的人的身高和体重所吃的薯条数量。 请注意,散点图只是二维可视化工具,但是当使用气泡图时,我们可以熟练地显示三个维度的信息。

在这里,我们使用颜色,位置和大小 ,其中气泡的位置确定人的身高和体重,颜色确定性别,大小由所吃的薯条量决定。 气泡图使我们可以方便地将所有属性组合到一个图形中,以便我们可以以二维形式查看大型信息。

图片
图7



 import numpy as np import matplotlib.pyplot as plt import matplotlib.patches as mpatches x = np.array([100, 105, 110, 124, 136, 155, 166, 177, 182, 196, 208, 230, 260, 294, 312]) y = np.array([54, 56, 60, 60, 60, 72, 62, 64, 66, 80, 82, 72, 67, 84, 74]) z = (x*y) / 60 for index, val in enumerate(z): if index < 10: color = 'g' else: color = 'r' plt.scatter(x[index], y[index], s=z[index]*5, alpha=0.5, c=color) red_patch = mpatches.Patch(color='red', label='Male') green_patch = mpatches.Patch(color='green', label='Female') plt.legend(handles=[green_patch, red_patch]) plt.title("French fries eaten vs height and weight") plt.xlabel("Weight (pounds)") plt.ylabel("Height (inches)") plt.show() 

Source: https://habr.com/ru/post/zh-CN440674/


All Articles