如何为Seaborn lineplot生成的线图下方区域填充不透明蓝色
Seaborn lineplot曲线下方填充解决方案
Seaborn是基于Matplotlib封装的可视化库,lineplot接口未单独封装填充功能,直接调用Matplotlib坐标轴的原生fill_between方法即可实现需求。
完整实现代码
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # 提前计算y轴总动量,避免重复计算 df["total_p"] = df["px"] + df["py"] + df["pz"] # 按x轴数值排序,避免x序列无序导致填充异常 df_sorted = df.sort_values(by="#Energy") # 绘制线图,获取坐标轴对象 ax = sns.lineplot(x=df_sorted["#Energy"], y=df_sorted["total_p"]) # 填充曲线下方区域 ax.fill_between( x=df_sorted["#Energy"], y1=df_sorted["total_p"], y2=0, # 填充的下边界为x轴(y=0),可按需修改 color="blue", alpha=1 # 透明度设为1即完全不透明,数值越小越透明 ) plt.show()
参数说明
y2:填充的下边界,默认设为0即从x轴开始填充,如果需要以其他y值为基准填充可自行调整color:填充颜色,除了默认的blue,也可传入十六进制色值(如#165DFF)自定义蓝色深浅alpha:填充透明度,取值范围为0到1,设为1即可实现完全不透明的效果
内容的提问来源于stack exchange,提问作者Sadaf Shafi
相关产品推荐
相关产品推荐

