这个代码是在“每个人的熊猫”一书中提供的(3.4.3.2大小和形状)。
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']没有被拆分,因此长度不同。
怎样才能毫无差错地绘制数字呢?
版本
运行在windows 10和Google上。
发布于 2021-07-20 22:46:35
lmplot一起工作,并警告它在那本书中!lmplot为每个级别的hue绘制不同的散点图,但是matplotlib kwargs只是直接通过散射,因此这些向量将有不同的长度。seaborn 0.11.1和matplotlib 3.4.2使用sns.scatterplot
import seaborn as sns
tips = sns.load_dataset('tips')
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="sex", size='size')

sns.scatterplot(data=tips, x="total_bill", y="tip", hue="sex", s=tips["size"].mul(20))

使用sns.relplot
import seaborn as sns
tips = sns.load_dataset('tips')
sns.relplot(data=tips, kind='scatter', x="total_bill", y="tip", hue="sex", size='size')

sns.relplot(data=tips, x='total_bill', y='tip', hue='sex', s=tips['size'].mul(20))

https://stackoverflow.com/questions/68457453
复制相似问题