如何传递 Seaborn 位置和关键字参数

2025-02-25 09:07:00
admin
原创
33
摘要:问题描述:我想绘制一个 seaborn regplot。我的代码:x=data['Healthy life expectancy'] y=data['max_dead'] sns.regplot(x,y) plt.show() 但是这会给我未来警告错误。如何修复此警告?FutureWarning: Pass ...

问题描述:

我想绘制一个 seaborn regplot。我的代码:

x=data['Healthy life expectancy']
y=data['max_dead']
sns.regplot(x,y)
plt.show()

但是这会给我未来警告错误。如何修复此警告?

FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid 
positional argument will be 'data', and passing other arguments without an explicit keyword will 
result in an error or misinterpretation.

解决方案 1:

Seaborn >= 0.12

  • 有了seaborn 0.12FutureWarning来自seaborn 0.11现在变成了TypeError

  • 只能data指定为 seaborn 图的第一个位置参数。所有其他参数必须使用关键字(例如x=y=)。这适用于所有seaborn绘图函数。

    • sns.*plot(data=penguins, x="bill_length_mm", y="bill_depth_mm")或者sns.*plot(penguins, x="bill_length_mm", y="bill_depth_mm")

    • sns.*plot(data=penguins.bill_length_mm)或者sns.*plot(penguins.bill_length_mm)

    • 请参阅seaborn 绘图函数概述

  • 使用 seaborn 时不正确使用位置参数和关键字参数可能会导致一些错误:

    • TypeError: *plot() takes from 0 to 1 positional arguments but 3 were given当没有传递关键字时发生。

      • sns.*plot(penguins, "bill_length_mm", "bill_depth_mm")

    • TypeError: *plot() got multiple values for argument 'data'在传递data=后用作位置参数
      时发生。x`y`

      • sns.*plot("bill_length_mm", "bill_depth_mm", data=penguins)

    • TypeError: *plot() takes from 0 to 1 positional arguments but 2 positional arguments (and 1 keyword-only argument) were given`x当为and传递位置参数y,后跟除 之外的关键字参数时发生data`

      • sns.*plot(penguins.bill_length_mm, penguins.bill_depth_mm, kind="reg")

  • 请参阅TypeError:method() 需要 1 个位置参数,但一般python解释给出了 2 个。

  • 位置参数与关键字参数


Seaborn 0.11

  • 从技术上讲,这是一个警告,而不是错误,暂时可以忽略,如该答案的底部所示。

  • 我建议按照警告所述进行操作,为指定xy参数seaborn.regplot,或使用此警告的任何其他seaborn 绘图函数。

  • sns.regplot(x=x, y=y),其中xy是的参数regplot,您要向其传递xy变量。

  • 从 0.12 版本开始,传递任何位置参数(除data)都将导致errormisinterpretation

    • 对于那些关心向后兼容性的人,请编写一个脚本来修复现有代码,或者不要更新到 0.12(一旦可用)。

  • xy用作数据变量名,因为这是 OP 中使用的名称。数据可以分配给任何变量名(例如ab)。

  • 这也适用于,它可以通过仅需要或 的FutureWarning: Pass the following variable as a keyword arg: x图来生成,例如:
    x`y`

    • sns.countplot(penguins['sex']),但应该是sns.countplot(x=penguins['sex'])sns.countplot(y=penguins['sex'])

import seaborn as sns
import pandas as pd

penguins = sns.load_dataset('penguins')

x = penguins.culmen_depth_mm  # or bill_depth_mm
y = penguins.culmen_length_mm  # or bill_length_mm

# plot without specifying the x, y parameters
sns.regplot(x, y)

在此处输入图片描述

# plot with specifying the x, y parameters
sns.regplot(x=x, y=y)

# or use
sns.regplot(data=penguins, x='bill_depth_mm', y='bill_length_mm')

在此处输入图片描述

忽略警告

  • 我不建议使用此选项。

  • 一旦 seaborn v0.12 可用,此选项将不再可行。

  • 从 0.12 版本开始,唯一有效的位置参数是data,传递没有明确关键字的其他参数将导致错误或误解。

import warnings
warnings.simplefilter(action="ignore", category=FutureWarning)

# plot without specifying the x, y parameters
sns.regplot(x, y)

在此处输入图片描述

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1344  
  国家信创三年行动方案的出台,为国内信息技术创新产业带来了前所未有的发展机遇。信创产业旨在实现信息技术领域的自主可控,减少对国外技术的依赖,保障国家信息安全。在这一宏大战略布局中,7类核心产业的发展备受关注,而适配的ERP系统选择更是这些产业实现高效运营与创新发展的关键环节。深入揭秘信创三年行动方案,并为7类核心产业提供...
国产化信创   0  
  信创产业作为国家战略的重要组成部分,对于保障国家信息安全、推动产业升级具有重要意义。在军工单位,信创适配更是关乎国防安全与核心竞争力的关键任务。2025 年,随着信创产业的深入发展,众多工程项目管理平台涌现,如何选择适配的平台成为军工单位面临的重要课题。本文将对 2025 年信创适配 TOP8 工程项目管理平台的功能进...
信创国产化要求   0  
  信创产业的蓬勃发展为各行业带来了新的机遇与挑战,在工程项目管理领域,适配信创环境的软件需求日益增长。工程项目管理软件对于项目的规划、执行和监控起着至关重要的作用,而其中的甘特图功能更是项目进度可视化管理的关键工具。以下将对 2025 信创适配榜中工程项目管理软件 TOP10 进行实测对比,帮助大家深入了解这些软件在甘特...
信创国产电脑   0  
  党政机关数字化转型是适应时代发展、提升治理效能的关键举措。在这一过程中,信创认证项目管理工具发挥着至关重要的作用。它们不仅能助力项目高效推进,还能保障信息安全与合规性。以下将对10款信创认证项目管理工具进行深度测评,为党政机关在数字化转型道路上的工具选择提供有力参考。工具的功能特性项目管理工具的功能特性是衡量其价值的核...
信创国产化   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用