适用于所有数据集的三种优秀可视化技术.Part2

适用于所有数据集的三种优秀可视化技术.Part2

同时你也会学习到一些足球相关的内容。


本文为自己个人翻译文档3 Awesome Visualization Techniques for every dataset的.Part2,如有侵权或者哪里翻译不到位的请在下方评论指出或者联系stdcoutzrh@gmail.com 。?

原文地址:[3 Awesome Visualization Techniques for every dataset]
PDF下载:[PDF DOWNLOAD]


4.矩阵散点图(Pairplots)

虽然我经常谈到相关性,但它是一个易变的度量标准
为了让你们理解我的意思,让我们来看一个例子。
Anscombe的四组数据包括四个数据集,这些数据集有着近乎完全一样的1相关性(此处1应该是指原文中的Numerical Variables,即数值相关性),但是它们也具有非常不同的分布,并且在绘制时看起来非常不同。
在这里插入图片描述
因此,有时绘制出有相互关系数据和单独观察它们的分布状况变得至关重要。
现在我们的数据集中有许多列。把它们都画出来将会很费劲的?不,这是一行代码可以解决。

filtered_player_df = player_df[(player_df['Club'].isin(['FC Barcelona', 'Paris Saint-Germain',
       'Manchester United', 'Manchester City', 'Chelsea', 'Real Madrid','FC Porto','FC Bayern München'])) & 
                      (player_df['Nationality'].isin(['England', 'Brazil', 'Argentina',
       'Brazil', 'Italy','Spain','Germany'])) 
                     ]
# Single line to create pairplot
g = sns.pairplot(filtered_player_df[['Value','SprintSpeed',
									'Potential','Wage']])

在这里插入图片描述
真的很棒!在这张图中我们可以看到很多信息。
工资和价值高度相关。其他大多的数值也是相关的。然而,潜在价值与价值的走向是例外的。我们可以看到当我们达到一个特定的潜在价值阈值时,这个值是如何以指数级增加的。这些信息对建模很有帮助。是否可以对潜在值进行一些转换,使其更加具有相关性?
说明:没有明确的纵列。
我们能做得更好吗?我们当然可以。

g = sns.pairplot(filtered_player_df[['Value','SprintSpeed',
									'Potential','Wage','Club']],
									hue = 'Club')

在这里插入图片描述
我们可以得到如此多的信息。我们只需添加hue参数作为分类变量club。
波尔图的工资分布大多数在低的区域。
我不认为波尔图球员的价值分布如此之大。波尔图的球员总是在寻找机会。
看看很多粉红点(切尔西)是如何在潜在与工资图上形成集群的。切尔西有很多高潜力的球员,工资较低。需要更多的关注。
我已经知道工资/价值子批次的一些要点。
50万工资的蓝点是梅西。当然,橙色点的那个梅西更有价值是内马尔。
尽管这种方法仍然不能解决分类问题,但是我有一些很酷的方法来研究分类变量的分布。虽然是单独的。

5.分簇散点图Swarmplots

如何看待分类数据和数值数据之间的关系?
进入图片群,就像他们的名字。为每个类别绘制的一组点,在Y轴上有一点分散,以便于查看。
他们是我目前最喜欢策划这种关系的人。

g = sns.swarmplot(y = "Club",
              x = 'Wage', 
              data = filtered_player_df,
              # Decrease the size of the points to avoid crowding 
              size = 7)
# remove the top and right line in graph
sns.despine()
g.figure.set_size_inches(14,10)
plt.show()

在这里插入图片描述
为什么不使用箱线图?中值在哪里?我能画出来吗?很明显。在顶部覆盖一个条形图,我们有一个很好看的图。

g = sns.boxplot(y = "Club",
              x = 'Wage', 
              data = filtered_player_df, whis=np.inf)
g = sns.swarmplot(y = "Club",
              x = 'Wage', 
              data = filtered_player_df,
              # Decrease the size of the points to avoid crowding 
              size = 7,color = 'black')
# remove the top and right line in graph
sns.despine()
g.figure.set_size_inches(12,8)
plt.show()

在这里插入图片描述
看起来很棒。我们可以看到图表上的各个点,看到一些统计数据,并对工资差异进行分类理解。
最右边的一点是梅西。但是,我不必在图表下面的文本中告诉你这一点。对吗?
这个图表将放在演示文稿中。你老板说。我想把梅西写在这张图上。进入图片注释。

max_wage = filtered_player_df.Wage.max()
max_wage_player = filtered_player_df[(player_df['Wage'] == max_wage)]['Name'].values[0]
g = sns.boxplot(y = "Club",
              x = 'Wage', 
              data = filtered_player_df, whis=np.inf)
g = sns.swarmplot(y = "Club",
              x = 'Wage', 
              data = filtered_player_df,
              # Decrease the size of the points to avoid crowding 
              size = 7,color='black')
# remove the top and right line in graph
sns.despine()
# Annotate. xy for coordinate. max_wage is x and 0 is y. In this plot y ranges from 0 to 7 for each level
# xytext for coordinates of where I want to put my text
plt.annotate(s = max_wage_player,
             xy = (max_wage,0),
             xytext = (500,1), 
             # Shrink the arrow to avoid occlusion
             arrowprops = {'facecolor':'gray', 'width': 3, 'shrink': 0.03},
             backgroundcolor = 'white')
g.figure.set_size_inches(12,8)
plt.show()

在这里插入图片描述
看下面的波尔图。与工资预算如此之低的巨头竞争。
在雷亚尔和巴塞罗那有很多高薪球员。
曼城的工资中位数最高。
曼联和切尔西相信平等。许多球员聚集在同一工资水平附近。
我很高兴内马尔比梅西更有价值,但梅西和内马尔的工资差别很大。
在这个疯狂的世界里看起来很正常。

6.总结

综上所述,在本文中,我们讨论了计算和读取不同变量类型之间的相关性,绘制数值数据之间的相关性,以及使用swamplots绘制分类数据。我喜欢我们如何在Seaborn中互相叠加图表元素。
另外,如果您想了解更多关于可视化的知识,我想从密歇根大学选修一门关于数据可视化和应用绘图的优秀课程,这是一门非常好的数据科学专业课程的一部分,专门学习Python本身。检查一下
如果你喜欢这篇文章,请拍手。这将有助于增加这篇文章的报道范围。将来我也会写更多适合初学者的文章。在媒体上跟踪我,或者订阅我的博客来了解他们。和往常一样,我欢迎反馈和建设性的批评,可以在twitter@mlwhiz上找到。
你也可以看看我在Seaborn上的另一篇文章,在那里我创建了一些更直接的可重用图。
这篇文章的代码在这个kaggle内核中。

References
1.The Search for Categorical Correlation
2.Seaborn Swarmplot Documentation
3.Seaborn Pairplot Documentation


译完。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值