Skip to main content
 首页 » 编程设计

python之如何使 Swarmplot (Seaborn) 中的点相互重叠

2025年05月04日23傻小

我用 seaborn 制作了一个 swarmplot,但我似乎找不到让这些点相互重叠的选项。

它们彼此重叠,但仅在两侧重叠。

我希望它们在放不下的时候到处重叠,但现在它们只在边上重叠。

data = sns.load_dataset('iris') 
sns.swarmplot(data=data, y="sepal_length", x="species", edgecolor="black",alpha=.5, s=15,linewidth=1.0) 

请您参考如下方法:

我认为故意让标记与 swarmplot 重叠是不可能的。当然,如果需要的话,较小的标记根本不会重叠。

否则,一个变通的词是使用这样一个事实,即 seaborn 对特定图形大小的标记之间的距离进行硬编码。因此,当在没有重叠发生的巨大图形上绘图时,之后使图形变小,overlapp 应该相当高。

import seaborn as sns 
import matplotlib.pyplot as plt 
 
data = sns.load_dataset('iris') 
fig, ax = plt.subplots(figsize=(19,4.8)) 
sns.swarmplot(data=data, y="sepal_length", x="species",  
                   edgecolor="black",alpha=.5, s=15,linewidth=1.0, ax=ax) 
fig.set_size_inches(6.4,4.8) 
 
plt.show() 

在这里您需要为 figsize 找到合适的值,以便您对结果感到满意。