PairGrid 与 Seaborn 中的 Hexbin 绘图

2023-12-03

我正在尝试在 Seaborn 网格中获取 hexbin 图。我有以下代码,

# Works in Jupyter with Python 2 Kernel.
%matplotlib inline

import seaborn as sns
import matplotlib as mpl
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")

# Borrowed from http://stackoverflow.com/a/31385996/4099925
def hexbin(x, y, color, **kwargs):
    cmap = sns.light_palette(color, as_cmap=True)
    plt.hexbin(x, y, gridsize=15, cmap=cmap, extent=[min(x), max(x), min(y), max(y)], **kwargs)

g = sns.PairGrid(tips, hue='sex')
g.map_diag(plt.hist)
g.map_lower(sns.stripplot, jitter=True, alpha=0.5)
g.map_upper(hexbin)

However, that gives me the following image, seaborn output

如何修复六边形图,使其覆盖图形的整个表面,而不仅仅是显示的绘图区域的子集?


您在这里尝试做的事情(至少)存在三个问题。

  1. 带状图适用于至少一个轴是分类的数据。在本例中情况并非如此。 Seaborn 猜测 x 轴是分类轴,它会扰乱子图的 x 轴。来自带状图文档:

    绘制一个散点图,其中一个变量是分类变量。

    在下面我建议的代码中,我已将其更改为简单的散点图。

  2. 在彼此之上绘制两个六边形图只会显示后一个。我添加了一些alpha=0.5到 hexbin 参数,但结果远非漂亮。

  3. 代码中的范围参数将十六进制图调整为x and y各性别的一次一个。但是两个六边形图的大小都需要相等,因此它们应该使用整个系列的最小值/最大值both性别。为了实现这一目标,我将所有系列的最小值和最大值传递给 hexbin 函数,然后该函数可以选择并使用相关的值。

这是我想出的:

# Works in Jupyter with Python 2 Kernel.
%matplotlib inline

import seaborn as sns
import matplotlib as mpl
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")

# Borrowed from http://stackoverflow.com/a/31385996/4099925
def hexbin(x, y, color, max_series=None, min_series=None, **kwargs):
    cmap = sns.light_palette(color, as_cmap=True)
    ax = plt.gca()
    xmin, xmax = min_series[x.name], max_series[x.name]
    ymin, ymax = min_series[y.name], max_series[y.name]
    plt.hexbin(x, y, gridsize=15, cmap=cmap, extent=[xmin, xmax, ymin, ymax], **kwargs)

g = sns.PairGrid(tips, hue='sex')
g.map_diag(plt.hist)
g.map_lower(plt.scatter, alpha=0.5)
g.map_upper(hexbin, min_series=tips.min(), max_series=tips.max(), alpha=0.5)

And here is the result: enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PairGrid 与 Seaborn 中的 Hexbin 绘图 的相关文章

随机推荐

  • 调试 Qt 源代码

    是否可以进入 Qt 源 例如qmainwindow cpp 在 Qt Creator 中 目前我正在看到反汇编 但如果能看到源代码就好了 当然 但你可能必须首先 转到 QT HOME qt 使用 debug 或 debug and rele
  • 将 uiimage 设置为 nil 不会使用 ARC 释放内存

    我有一个滚动视图 它在页面滚动时显示不同的图像 例如 PhotoScroller 我正在使用ARC 当有人滚动到另一个页面时 我将当前未显示的 UIImageView 的图像属性设置为 nil 作为 尝试 避免内存崩溃 这种情况仍在发生 然
  • Now.js 中的会话支持

    Now js 引用 只需在 nowjs initialize 中传递一个连接或快速 http 服务器 this user session 就应该可用 So express require express app module exports
  • 如果任何线程发生异常,则中断所有线程

    我有一个方法名称someTask我必须调用 100 次 并且我正在使用异步编码 如下所示 for int i 0 i lt 100 i futures add CompletableFuture supplyAsync gt someTas
  • Postgres 中的递归 CTE

    我有一个结构如下的表 Employee ID Employee Name Manager ID 而且 对于每个员工 我都需要出示最高管理者的 ID 我的意思是 例如 如果我有 EmployeeID 2 其经理为 3 因此 数字 3 的经理为
  • 如何允许某些特定IP地址访问我的WCF服务

    我有一个 WCF 服务返回 xml 我只想要一个 IP 地址来访问它 例如 10 0 0 5 有人可以告诉我我该怎么做吗 请告诉我除防火墙和 IIS 之外的其他内容 您需要添加 ip 过滤 如下所示 https stackoverflow
  • 将文本值输入到 div 中?

    假设我有这个文本框
  • IPv6 的示例数据?

    是否存在 IPv6 流量的示例数据集 例如Apache 日志还是流量分析日志 或者 是否有人有任何想法如何生成一个或 乐观地 现有工具来生成数据 理想情况下 我希望实际部署的示例地址与该范围内的地址数量和 或来自这些范围的预期流量成比例 即
  • 访问资源目录路径

    看起来 NSBundle mainBundle pathForResource name ofType png 对于 Images xcassets 资产目录内的资产 不返回任何内容 我也尝试过 NSBundle mainBundle pa
  • 雅虎 YQL RSS - 错误请求

    为了使用 jQuery 发出跨域 AJAX 请求 我尝试使用 YQL RSS select from rss where url https www top1000funds com feed most popular posts My c
  • C++中如何将字符串转换为char *?

    我怎样才能转换string in to char 我使用了以下方法 但它不起作用 在运行时它给我以下错误 运行时检查失败 3 变量 url 正在被使用而没有 正在初始化 尽管我已经将其初始化 如下面的代码所示 你能给我举个例子吗 char
  • 具有动态键的对象的 Apollo/GraphQL 字段类型

    假设我的 graphql 服务器想要以 JSON 形式获取以下数据 其中person3 and person5是一些 id persons person3 id person3 name Mike person5 id person5 na
  • JTable 基于隐藏列的排序

    我想排序JTable基于一个隐藏列的行 假设我有一个像这样的 JTable column1 column2 val1 val2 现在我又多了一个被隐藏的column3 我不想显示 当用户单击 Column2 时 它应该根据 Column3
  • 在 JavaScript 中创建特定时区的日期对象并将其转换为 UTC

    我的应用程序当前以以下格式存储特定事件的日期和时间 date 2022 05 06 time 00 00 12 00 AM 每个事件的时间还包含与其关联的时区 如果组织活动的人来自新加坡 那么时区将亚洲 新加坡 当我向与会者发送此活动的日历
  • 使用delphi以编程方式执行防病毒程序

    我编写了一个小应用程序来使用 indy 组件传输文件 现在我想在传输完成后启动防病毒程序来检查文件 下载完成后 如何执行客户端安装的防病毒程序 UPDATE下载文件时我需要实现类似于 Firefox 的功能 然后执行机器中安装的防病毒软件
  • 如何以编程方式设置拨号连接的“自动配置脚本”?

    我在 Internet 选项 gt 连接 中有一个拨号连接 我想以编程方式为其设置一个 自动配置脚本 连接设置之一 将其设置为 LAN 很容易 但我找不到有关将其设置为其他连接的任何信息 好的 我已经解决了 实际上 它以与存储 LAN 设置
  • 如何使用基于 JWT 的身份验证处理文件下载?

    我正在用 Angular 编写一个 Web 应用程序 其中身份验证由 JWT 令牌处理 这意味着每个请求都有一个包含所有必要信息的 身份验证 标头 这对于 REST 调用非常有效 但我不明白应该如何处理后端托管文件的下载链接 文件驻留在托管
  • 混合 JSON-LD CollectionPage 和 Schema.org 的微数据 `hasPart`

    下面的微数据标记工作得很好 Google 的结构化数据测试工具显示一个CollectionPage and WebSite WebPage作为孩子 span a href https springfield xxxx us Official
  • 如何在 C# 中使用 Delphi Dll(带 PChar 类型)

    下面是 Delphi DLL 代码 library Project2 uses SysUtils Classes R res function SimpleConv const s string string var i Integer b
  • PairGrid 与 Seaborn 中的 Hexbin 绘图

    我正在尝试在 Seaborn 网格中获取 hexbin 图 我有以下代码 Works in Jupyter with Python 2 Kernel matplotlib inline import seaborn as sns impor