如何更好地拟合seaborn小提琴图

2024-03-12

下面的代码给了我一个非常漂亮的小提琴图(以及其中的箱线图)。

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

foo = np.random.rand(100)
sns.violinplot(foo)
plt.boxplot(foo)
plt.show()

到目前为止,一切都很好。然而,当我看到foo,该变量不包含任何负值。这seaborn这里的情节似乎有误导性。正常的 matplotlib 箱线图给出的结果更接近我的预期。

如何制作更适合的小提琴图(不显示假负值)?


正如评论所指出的,这是高斯 KDE 基础假设的结果(我不确定我是否会称其为“工件”)。正如已经提到的,这是不可避免的,如果您的数据不满足这些假设,您最好使用箱线图,它仅显示实际数据中存在的点。

然而,在您的回复中,您询问是否可以“更紧”,这可能意味着一些事情。

一种答案可能是改变平滑内核的带宽。你用bw参数,实际上是一个比例因子;将使用的带宽是bw * data.std():

data = np.random.rand(100)
sns.violinplot(y=data, bw=.1)

另一个答案可能是在数据点的极值处截断小提琴。 KDE 仍将是fit密度超出数据范围,但不会显示尾部。你用cut参数,指定应绘制超过密度极值的带宽单位。要截断,请将其设置为 0:

sns.violinplot(y=data, cut=0)

顺便说一句,APIviolinplot is 将会改变 https://github.com/mwaskom/seaborn/pull/410在 0.6 中,我在这里使用的是开发版本,但是bw and cut参数存在于当前发布的版本中,并且行为方式大致相同。

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

如何更好地拟合seaborn小提琴图 的相关文章

随机推荐

  • std::future 和 clang 与 -stdlib=libstdc++

    以下程序无法与 clang 和 stdlib libstdc 链接 cat future cpp include
  • Python 多处理:进程的进度报告

    我的应用程序中有一些任务受 CPU 限制 并且我想使用多处理模块来使用多核处理器 我接受一个大任务 视频文件分析 并将其分成几个较小的任务 这些任务放入队列中并由工作进程完成 我想知道的是如何从这些工作进程向主进程报告进度 例如 我需要他们
  • 如何在PHP中获取客户端IP地址

    如何使用 PHP 获取客户端 IP 地址 我想保留通过 IP 地址登录我的网站的用户的记录 Answer recommended by PHP collectives php Collective 无论您做什么 请确保不要信任客户端发送的数
  • 不相关实体的 HQL 左连接

    我有 2 个实体 A and B 它们是相关的 但我不想将关系映射添加到 bean 我们如何使用之间的左外连接A and B使用 HQL 或标准 有一些解决方法可以解决这个问题 按照指示使用本机 SQLhere https stackove
  • 大型 WCF Web 服务请求因 (400) HTTP 错误请求而失败

    我遇到过这个明显常见的问题 但无法解决 如果我使用数组参数中相对较少的项目 我已测试最多 50 个 来调用 WCF Web 服务 则一切都很好 但是 如果我调用包含 500 个项目的 Web 服务 则会收到错误请求错误 有趣的是 我跑过Wi
  • 从 Bash 函数返回字典

    我想在 bash 中有一个函数 它创建一个字典作为局部变量 用一个元素填充字典 然后返回该字典作为输出 下面的代码正确吗 function Dictionary Builder local The Dictionary unset The
  • python 的 random.Random.seed 是如何工作的?

    我习惯打字random randrange 我会做一个from random import Random从现在开始发现错误 对于涉及程序生成的游戏 不 不是 Minecraft 克隆 p 我想保留几个不同的伪随机数生成器 一个用于世界的生成
  • 使用传单和 R 向 CircleMarkers 添加边框

    我想为 CircleMarkers 添加边框 我使用了以下代码 我找不到任何为笔画添加黑色边框的功能 pal lt colorNumeric palette RdYlBu domain city results ratio m lt lea
  • 合并一个数组中的两个 int 数组,且不重复

    我正在尝试将两个数组合并为一个而不重复 但我的代码无法正常工作 谁能建议如何解决这个问题 void unify int set A int size A int set B int size B int set C int size C i
  • Flurry Android Analytics 中未获取报告

    我已将 Flurry Analytics 集成到我的应用程序中 但无法获取 Flurry Dashboard 上的报告 但我按照 Flurry ReadMe PDF 中提到的方式集成了它 我使用 API 密钥实现了所需的所有代码 但不知道为
  • Rails Devise:登录后如何访问注册页面?

    我是 Rails 新手 我正在使用 devise gem 进行身份验证 首先 我通过默认注册页面添加一个新用户 例如 users sign up 然后 我按照以下说明将 sign up 页面设置为仅对符号用户可用 在过滤器之前设计阻止访问
  • 从我的 git 历史记录中删除 4 个提交

    我已经完成了一些提交并将它们推送到我的存储库中 然后我做了一个拉取请求 但我意识到有一些提交我不想出现在拉取请求中 它们看起来像这样 My commits look like this Correct HTML ab1c41c HTML e
  • 使用 WiX 创建语言选择对话框

    我使用 WiX 创建了一个多语言安装程序 我正在使用命令从命令行运行安装程序 msiexec i myinstaller msi TRANSFORMS 1041 并且工作正常 现在我已经使用引导程序创建了一个语言选择对话框 如何将所选语言传
  • 如何将Win32 HRESULT转换为int返回值?

    我正在用 C 编写一个 Windows 控制台应用程序 希望在成功时返回零 在失败时返回有意义的错误代码 即 S OK应该返回 0 并且E OUTOFMEMORY应该返回不同的返回值E FAIL等等 以下是一个好的方法吗 int wmain
  • 对于 std::string,复制初始化或直接初始化字符串文字更快吗?

    我有以下问题 应该遵循哪一项更好 为什么 string strMyString SampleString or string strMyString SampleString 我回答了here https stackoverflow com
  • Chrome 中的 Math.log2 精度已更改

    我编写了一个 JavaScript 程序 它根据元素的数量计算二叉树的深度 我的程序几个月来一直运行良好 但最近我发现在 Chrome 和 Firefox 中查看网页时存在差异 特别是在 Firefox 上 Math log2 8 3 但现
  • 高效处理超宽但不太高的位图?

    有什么方法可以创建更节省空间 资源的位图吗 目前我尝试渲染一个文件 高约 800px 宽约 720000px 它使我的应用程序崩溃 大概是因为位图的共享内存大小 我是否可以更有效地执行此操作 例如直接将其创建为 gif 而不是稍后保存 我尝
  • Elif,如果不工作或者我不理解[重复]

    这个问题在这里已经有答案了 好吧 我的代码可以正常工作 但是当我输入 否 时 如果我想重试输入密码 它就不起作用了 它只是转到输入密码行 第 20 行 我尝试了多种方法来解决这个问题 但我就是做不到 import time import o
  • 未捕获的类型错误:$(…).on 不是函数

    我在页面上使用 JQuery UI 对话框并收到此错误
  • 如何更好地拟合seaborn小提琴图

    下面的代码给了我一个非常漂亮的小提琴图 以及其中的箱线图 import numpy as np import seaborn as sns import matplotlib pyplot as plt foo np random rand