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

2025-02-25 09:07:00
admin
原创
32
摘要:问题描述:我想绘制一个 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)

在此处输入图片描述

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1343  
  信创产业的蓬勃发展推动着各行业数字化转型加速,数据库迁移作为其中关键一环,面临诸多挑战。信创数据库迁移旨在将传统数据库平稳过渡到信创环境,以满足自主可控、安全可靠的需求。这一过程涉及技术、业务等多方面因素,稍有不慎就可能出现各种问题,影响业务的正常运行。深入探讨信创数据库迁移过程中的常见问题及解决方案,对于保障迁移工作...
2027年信创国产化   41  
  随着信息技术的飞速发展,信创国产化成为了国家战略的重要组成部分。国产化信创产品名录涵盖了众多领域,其在各个关键应用场景中发挥着重要作用。而信创国产化操作系统作为其中的核心环节,具备五大核心优势,为我国信息技术产业的自主可控发展提供了坚实支撑。关键应用场景之办公领域在办公领域,国产化信创产品有着广泛且深入的应用。如今,越...
国产信创系统   37  
  随着信息技术的飞速发展,信创国产化操作系统在政府部门的推广应用具有重要的战略意义。它不仅关乎国家信息安全,更是推动国内信息技术产业自主创新、实现科技自立自强的关键举措。在当前复杂的国际形势下,政府部门积极推广信创国产化操作系统,对于保障国家政务信息的安全稳定运行,提升信息技术的自主可控能力,具有不可替代的重要作用。推广...
信创产品有哪些   28  
  在企业数字化转型的进程中,信创数据库解决方案的选择至关重要。它不仅关乎企业数据的安全存储与管理,更影响着企业业务的稳定运行与未来发展。合适的信创数据库能够助力企业在复杂多变的市场环境中提升竞争力,保障数据主权与安全。然而,面对市场上众多的信创数据库产品和解决方案,企业往往感到困惑,不知如何做出正确的选择。接下来,我们将...
信创电脑   24  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用