繁体   English   中英

seaborn 散点图将气泡大小缩放到更大的点

[英]seaborn scatterplot scale bubble size to larger dots

我正在关注这个 例子,我想创建更大的气泡,但无论我将大小列乘以多大,它们仍然很小,是否有某种缩放因子可以调整? 我在文档中找不到它。

import seaborn as sns; sns.set()
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")
ax = sns.scatterplot(x="total_bill", y="tip", data=tips)

cmap = sns.cubehelix_palette(dark=.3, light=.8, as_cmap=True)
ax = sns.scatterplot(x="total_bill", y="tip",
                     hue="size", size="size",
                     palette=cmap,
                     data=tips)

在此处输入图片说明

tips['size'] = 100 * tips['size']

ax = sns.scatterplot(x="total_bill", y="tip",
                     hue="size", size="size",
                     palette=cmap,
                     data=tips)

在此处输入图片说明

示例代码在这里

显然,您还需要使用sizes来实现指定的尺寸范围。

minsize = min(tips['size'])
maxsize = max(tips['size'])
ax = sns.scatterplot(x="total_bill", y="tip",
                    hue="size", size="size", sizes=(minsize, maxsize),
                    palette=cmap,
                    data=tips)

在此处输入图片说明

感谢这个方法! 它很好用。 在使用大量数据设置大尺寸无花果时,我遇到了同样的问题。 散布看起来太小了,我无法区分大小。 所以首先设置元组,将其注入 sns.scatter

顺便说一句,使用这种方法,您可以使用乘法因子在 minsize 和 maxsize 上进行播放,而无需更改大小的实际数据以及图例。 我必须将 minsize 和 maxsize 设为五次方以使其可读! 太感谢了!

minsize = min(df['value']**5)
maxsize = max(df['value']**5)
fx= sns.scatterplot(x=df['this'], y=df['that'], data=df, hue=df['takeway'], size=df['value'], sizes=(minsize, maxsize), legend='brief')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM