Python堆叠面积图去除边缘色 解决边缘重叠覆盖显示异常问题
解决方法
该绘图伪影是pandas绘制堆叠面积图时,默认给每个序列的填充区域添加了与填充色同色的边缘线,上层序列的边缘线会覆盖下层区域的顶部边缘,造成视觉上的数值偏差。只需要在调用df.plot.area()时传入linewidth=0参数关闭边缘线绘制即可消除该问题。
修改后的可用代码
import pandas as pd, numpy as np import matplotlib.pyplot as plt, seaborn as sns def myplot(df): fig, ax = plt.subplots(figsize=(4, 4)) # 核心修改:添加linewidth=0关闭边缘线 df.plot.area(ax=ax, linewidth=0) # 测试用100条观测值的代码 df = pd.DataFrame(np.random.randint(0, 100, size=(100, 4)), columns=list('ABCD')) myplot(df=df) plt.show()
补充说明
- 如果需要更彻底关闭边缘渲染,可额外传入
edgecolor='none'参数,效果与linewidth=0一致 - 若后续需要区分不同序列的边界,可单独设置更细的线宽配合中性边缘色使用,例如
linewidth=0.2, edgecolor='white',既不会产生严重覆盖,也能保留序列区分度
内容的提问来源于stack exchange,提问作者safex
相关产品推荐
相关产品推荐

