首页 > 其他分享 >如何使用 Seaborn 在每个刻度标签上设置不同的颜色

如何使用 Seaborn 在每个刻度标签上设置不同的颜色

时间:2022-10-01 18:01:13浏览次数:78  
标签:颜色 Seaborn 标签 球队 刻度 轴级 我们

如何使用 Seaborn 在每个刻度标签上设置不同的颜色

在此示例中,我将演示如何显式设置 x 轴刻度线标签的颜色。在刻度线标签上使用颜色是吸引观众注意图表特定部分的好方法。

main_image-2.png

一点背景

在 Seaborn 中有两种访问方式 x_ticklabels 取决于你是否使用 轴级 功能或 人物级 功能。您可以直接从 Seaborn 的网站 ,但在高层次上,您可以将其视为:

  1. 轴级——您直接与 matplotlib 函数交互。高度的灵活性,但需要更多的工作。
  2. 图级——您正在通过 Seaborn 对象与 matplotlib 进行交互。灵活性较低,但对产品现成图表的描述较少。

幸运的是,只有 3 个图形级函数,所以如果您不使用其中之一,那么您正在使用轴级函数。下图取自 Seaborn 的网站,大框中的三种绘图类型为图形级别,其余为轴级别。

seaborn_axes_v_figure.png

在本例中,我将介绍两个图形级函数, 条形图() & 线图() , 和两个轴级, 猫图() & 关系图() .但是您很快就会发现每种类型的代码几乎相同,您可以将相同的技术应用于任何绘图。

导入库和数据

为了给我们一些数据,我下载了 冠军数据.csv 小鸡 .您可以使用这个确切的数据集按照教程进行操作,您只需将 excel 转换为 csv(或尝试直接导入)并进行一些小调整。
该数据集包含 1980 年至 2018 年(39 年)的 NBA 冠军得主。该数据集包含获胜球队参加的每场比赛的一行以及球队统计数据。

 df.sample(5)

png

我将创建一个快速汇总表,列出每支球队在 39 年期间赢得的总冠军头衔。我还将添加比例和累积比例。如果您想获得有关创建比例和嵌套比例的更多信息,我已经单独制作了一个 教程 关于这个话题。

png

既然我们有这张小桌子,我们不妨快速分析一下我们所看到的。
这里有一些有趣的见解。 (如果你愿意,可以跳过这部分)

  1. NBA目前有30支球队,在39年的时间里,只有10支球队赢得了NBA总冠军。即使我们考虑到 80 年代有 22 到 25 支球队这一事实,我们仍然可以体会到一支球队在任何一年一路走来是多么罕见。
  2. 即使你不太了解篮球或 NBA 的运作方式,我们也可以从这些数据中推断出一支出色的球队可以统治联盟多年。如果你是一支低于标准的NBA球队,几乎不可能赢得总冠军。一支平庸的球队有可能进入季后赛,但考虑到一支球队每轮需要赢得的比赛数量,一支糟糕的球队不太可能赢得冠军。同样,一旦你是最好的团队,其他人需要一段时间才能赶上。一支优秀的团队可以保持胜利和/或保持多年的竞争力。
  3. 拥有最多总冠军的球队是拥有 10 座总冠军的洛杉矶湖人队。这 10 支球队分为两个不同的十年,由两组不同的核心球员(魔术师约翰逊/卡里姆·阿卜杜勒-贾巴尔和科比·布莱恩特/沙奎尔·奥尼尔)推动。第二支球队是芝加哥公牛队,有 6 人。这六人是在一个十年(超过 7 年)内仅由一组核心球员(迈克尔乔丹/斯科蒂皮蓬)赢得的。我希望这能说明这一成就是多么令人印象深刻。

现在我们有了数据集,让我们开始绘图。

轴水平功能

条形图

我们将从一个简单的条形图开始。对于这个例子,我们假设我们知道 70% 的冠军是由 5 支球队赢得的,所以我们将数字 4 (0–4) 硬编码到我们的脚本中。
前七行代码只是设置图表。 For 循环是所有动作发生的地方。如上所述,当我们使用轴级函数时,我们直接与 matplotlib 交互。因此,当我们创建 pyplot.Axes 对象时 G ,我们可以使用它来访问 get_xticklabels() 列表。
一旦有了列表,我们就可以遍历它,列表中的每个元素都是一个标签对象。一旦我们可以访问标签对象,我们就可以对它做任何我们想做的事情。在这种情况下,我做的第一件事就是 设置颜色() 第二件事是 设置字体大小() .我从配对调色板中选择的颜色。
第五个之后的任何团队都将获得褪色的蓝色阴影和更小的(默认)字体大小。
使用此图表,我们可以绘制整个数据集,并且仍然可以将观众的注意力吸引到前六支球队。

png

线图

在第二个示例中,我们仍然使用轴级函数 lineplot。这张图表的不同之处在于,我想让哪些团队获得不同颜色的选择更加动态,因为最好将硬编码保持在最低限度。在此示例中,我将演示如何在没有硬编码值的情况下将自定义颜色应用于前 N% 的团队。
这种效果可以通过两步过程来实现。在第一步中,我们为所有剩余的团队设置颜色,换句话说,那些不属于前 70% 的团队。这实际上会为所有标签设置颜色,但这是必要的。
在第二步中,我们仅更改前 70% 的颜色。这是通过访问 get_yticks() 来自 matplotlib.Axes 对象。
我们需要分两步反向执行的原因之一是因为对象 G 不再有权访问数据,我们只有 x 轴标签和 y 轴标签,它们的大小不同(见下面的打印输出)。它们大小不同的原因应该很明显,单个 y 轴值可以有多个 x 轴值。原因 g.get_yticks() 在步骤 2 中使用,而不是 g.get_yticklabels() 是因为前者将返回一个可以与另一个数字进行比较的浮点数,而后者返回一个 matplotlib.text.Text 对象。

 x-ticks 数量:11  
 y 刻度数:6

png

使用轴级函数的示例到此结束。要将上述方法应用于任何其他轴级图表,只需更改函数的名称(并相应地调整 x/y 值)。

图级函数

现在我们将继续讨论图形级别的图。
我们仍然需要访问 get_yticklabels() matplotlib 中的函数,但现在我们需要通过 Seaborn 对象来执行此操作。轴级和图形级方法的唯一区别在于,在图形级方法中,我们首先需要在运行循环之前访问 maplotlib.Axes 对象,如下所示。

总图

png

重新绘图

现在我将使用 关系图() 图形级函数来演示如何使字体颜色更动态地变化。由于 关系图() 使用两个数值变量效果更好,我使用了原始数据框中的点和辅助 (PTS/AST) 列 ( df )。我随意选择突出显示助攻数少于 35 的总分。
两步过程是相同的 线图() 上面,唯一的区别是我们首先需要从 Seaborn 对象中提取 matplotlib.Axes 对象。

png

我希望上面的示例展示了在轴级和图形级 seaborn 图表上自定义 x/y 刻度线标签是多么容易。使用不同的颜色和阴影通常是将观众的注意力吸引到图表上特定部分的好方法,同时仍然显示所有数据。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/40268/51230117

标签:颜色,Seaborn,标签,球队,刻度,轴级,我们
From: https://www.cnblogs.com/amboke/p/16747511.html

相关文章

  • 浏览器必备的上网工具,同样也是收藏党必备工具, 网页图片收藏工具,可以收藏全网的网页图
    浏览器必备的上网工具,同样也是收藏党必备工具,网页图片收藏工具,可以收藏全网的网页图片,无需下载到本地了,太方便了工具名称:BdTab新标签页插件,支持图片收藏......
  • 18. HTML-- <head>标签:头部
    1.前言HTML中的<head>标签是所有头部标签的容器,这些头部标签用来定义有关HTML文档的元数据(描述数据的数据)以及所需资源的引用(例如CSS样式文件、JavaScript脚本文......
  • php 正则获取所有标签
    <?php$temp='<divclass="num">1</div><divclass="num">2</div><divclass="num">3</div><divclass="num">4</div><divclass="num1">3</div>&l......
  • 17. HTML-- <iframe>标签:内联框架
    1.前言HTMl<iframe>标签用来定义一个内联框架,使用它可以将另一个网页嵌入到当前网页中。<iframe>标签会在网页中定义一个矩形区域,浏览器可以在这个区域内显示另一个页......
  • 19.JS的标签查找
    1.getElementById(通过ID查找)2.getElementsByClassName(通过类名查找)3.getElementsByTagName(通过标签名查找)4.getElementsByName(通过Name属性查找)例:document.get......
  • 12. HTML-- 表单:<form>标签
    1.前言当您想要通过网页来收集一些用户的信息(例如用户名、电话、邮箱地址等)时,就需要用到HTML表单。表单可以接收用户输入的信息,然后将其发送到后端应用程序,例如PHP、J......
  • 移动端meta标签配置
    网上搜索了下,整理下移动端页面,需要注意的控制显示区域各种属性:width-viewport的宽度(范围从200到10,000,默认为980像素)height......
  • 10. HTML-- 列表标签:<ul><ol><dl>
    1.前言HTML列表(List)可以将若干条相关的内容整理起来,让内容看起来更加有条理。在列表内您可以放置​​文本、图像、链接等,也可以在一个列表中定义另一个列表(列表嵌套)。HT......
  • 9. HTML-- 插入图片:<img>标签
    1.前言一图胜千言,图片比文字更具表现力,恰当地使用图片可以让网页更加精美。HTML使用<img>标签插入图片,img是image的简称。<img>是自闭和标签,只包含属性,没有结束标......
  • 8. HTML-- 超链接标签<a>
    1.前言在HTML中,我们使用<a>标签来表示超链接。超链接(Hyperlink)通常简称为链接(Link),是指从一个网页指向另一个目标的连接关系,这个目标可以是另一个网页,也可以是当前网......