首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >seaborn.lmplot在同时设置‘when’和‘散开_kws`’‘s’s‘时会引发ValueError

seaborn.lmplot在同时设置‘when’和‘散开_kws`’‘s’s‘时会引发ValueError
EN

Stack Overflow用户
提问于 2021-07-20 15:22:13
回答 1查看 597关注 0票数 2

这个代码是在“每个人的熊猫”一书中提供的(3.4.3.2大小和形状)。

代码语言:javascript
复制
import seaborn as sns
from matplotlib import pyplot as plt

tips = sns.load_dataset('tips')
sns.lmplot(
    x='total_bill',
    y='tip',
    data=tips,
    fit_reg=False,
    hue='sex',
    scatter_kws={'s': tips['size'] * 10}
)
plt.show()

当我运行这段代码时,它会导致ValueError在axes.py线4508上。

ValueError: s必须是标量,或与x和y大小相同的浮点数组。

如果省略hue参数,则不会引发此错误。数据(tips['total_bill']tips['tip'])似乎是由sex拆分的,但是tips['size']没有被拆分,因此长度不同。

怎样才能毫无差错地绘制数字呢?

版本

  • Python 3.7
  • matplotlib 3.4.2
  • 海运0.11.1

运行在windows 10和Google上。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-20 22:46:35

  • 根据海运问题2621,使用s: ValueError: s的kws或relplot必须是标量,或与x和y大小相同的浮点数数组。,海运主要开发人员指出,这不应该与lmplot一起工作,并警告它在那本书中!
    • 我相信它停止“工作”的原因是matplotlib添加了一些输入验证来捕获这样的情况。
    • lmplot为每个级别的hue绘制不同的散点图,但是matplotlib kwargs只是直接通过散射,因此这些向量将有不同的长度。

  • 使用seaborn 0.11.1matplotlib 3.4.2

使用sns.scatterplot

代码语言:javascript
复制
import seaborn as sns

tips = sns.load_dataset('tips')

sns.scatterplot(data=tips, x="total_bill", y="tip", hue="sex", size='size')

代码语言:javascript
复制
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="sex", s=tips["size"].mul(20))

使用sns.relplot

代码语言:javascript
复制
import seaborn as sns

tips = sns.load_dataset('tips')

sns.relplot(data=tips, kind='scatter', x="total_bill", y="tip", hue="sex", size='size')

代码语言:javascript
复制
sns.relplot(data=tips, x='total_bill', y='tip', hue='sex', s=tips['size'].mul(20))

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68457453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档