为什么seaborn pairplot绘图会出现数据变白现象?如何解决?
你遇到的视图缩小后颜色泛白问题可通过以下调整解决:
问题原因
该现象是两个配置问题叠加导致的:
hue是seaborn.pairplot的原生顶层参数,你将其放在plot_kws中传入会导致散点渲染逻辑异常,抗锯齿效果下大量重叠的散点边缘混合后出现泛白- 散点默认的浅色描边在视图缩小时,密集排列的小尺寸点的描边混合后会产生整体变亮的视觉效果
修复后的代码
import pandas as pd import seaborn as sns import matplotlib.pyplot as plt df = pd.read_csv(r"https://pastebin.com/raw/7ez3WQzW") def supplyHue(x): if x < 1: myReturn = 1 elif x < 2: myReturn = 2 elif x < 4: myReturn = 4 elif x < 6: myReturn = 6 elif x < 10: myReturn = 10 elif x < 15: myReturn = 15 elif x < 18: myReturn = 18 else: myReturn = 20 return myReturn df['c'] = df.a.apply(lambda x: supplyHue(x)).astype('category') # 转为分类类型,固定颜色映射 g = sns.pairplot( df, corner=True, vars=['a', 'b'], hue='c', # 移到顶层传入hue参数 plot_kws=dict( edgecolor='none', # 关闭散点描边 s=15 # 可根据需要调整点大小,避免过度重叠 ), ) g.add_legend() g.axes[1][0].grid() plt.show()
修改后无论缩放视图,每个分箱对应的颜色都不会再出现泛白偏移的问题。
内容的提问来源于stack exchange,提问作者7824238
相关产品推荐
相关产品推荐

