如何在Pitch图中为不同活动绘制彩色散点图并添加图例
实现不同颜色散点图及图例的方法
关键调整步骤:
- 保留活动类别列:提取数据时需要保留
event列,否则无法区分不同活动 - 定义颜色映射:为每个活动指定专属颜色
- 分活动绘制散点:循环每个活动类别,用对应颜色绘制并设置图例标签
- 添加图例:调用图例方法显示各活动对应的颜色
修改后的完整代码:
# 调整数据提取,保留event列 mask_activity = df.event.isin(['run','jog','swim']) & (df.name == "peter") df_activity = df.loc[mask_activity, ['event', 'X', 'Y']] # 新增event列 # 定义活动与颜色的映射 activity_colors = { 'run': 'red', 'jog': 'green', 'swim': 'blue' } # 初始化Pitch图 pitch = Pitch(line_color='black') fig, ax = pitch.grid(grid_height=0.9, title_height=0.06, axis=False, endnote_height=0.04, title_space=0, endnote_space=0) # 循环每个活动,分别绘制散点并设置图例标签 for activity, color in activity_colors.items(): # 过滤当前活动的数据 activity_data = df_activity[df_activity['event'] == activity] # 绘制散点,指定颜色和标签 pitch.scatter(activity_data['X'], activity_data['Y'], alpha=1, s=500, color=color, label=activity, ax=ax['pitch']) # 添加图例 ax['pitch'].legend(fontsize=12, loc='upper right') # 设置标题并显示 fig.suptitle("Peter's Activities", fontsize=30) plt.show()
代码说明:
- 提取数据时保留
event列,是后续区分活动的基础 - 颜色映射字典可以根据需求自定义颜色(支持十六进制颜色码,比如
'#FF5733') - 循环绘制每个活动的散点,通过
label参数指定图例显示的文本 - 调用
ax['pitch'].legend()在Pitch图区域添加图例,loc参数可以调整图例位置
内容的提问来源于stack exchange,提问作者ruben.lfdz
相关产品推荐
相关产品推荐

