如何在Python Pandas散点图中添加展示SZA对应DIF数量的颜色条?
实现带数量颜色条的散点图
步骤1:计算每个sza对应的dif值数量
首先需要给原DataFrame添加一列,存储每个sza值对应的dif条目数:
# 计算每个sza的dif值数量,并映射到原数据的每一行 df['sza_dif_count'] = df.groupby('sza')['dif'].transform('size')
这一步会为每个sza分组统计条目数,再将结果对应到原数据的每一行,确保每个点都能获取到所属sza的数量值。
步骤2:绘制带颜色映射的散点图
修改散点图代码,用新添加的sza_dif_count列控制点的颜色:
import matplotlib.pyplot as plt # 绘制散点图,c参数指定颜色依据的列,cmap可选配色方案 scatter = plt.scatter(x=df['sza'], y=df['dif'], c=df['sza_dif_count'], cmap='RdYlGn_r')
cmap='RdYlGn_r'是反向的红黄绿配色,符合你提到的“数量少为绿色、数量多为红色”的需求;若需要其他配色,可替换为viridis、plasma等内置配色,或自定义配色。
步骤3:添加颜色条并设置标签
最后添加颜色条,明确其代表的含义:
# 添加颜色条并设置标签 plt.colorbar(scatter, label='sza对应的dif值数量') # 设置坐标轴标签 plt.xlabel('sza') plt.ylabel('dif') # 显示图像 plt.show()
运行上述代码后,散点图中的每个点会根据其sza对应的dif数量呈现不同颜色,颜色条会直观展示数量与颜色的对应关系。
内容的提问来源于stack exchange,提问作者span_path
相关产品推荐
相关产品推荐

