Power BI中Matplotlib折线图按击球类型自定义标记形状
按得分类型自定义折线图标记的实现方案
直接给你能在Power BI里运行的代码,核心思路是先画连贯的折线,再按得分类型逐个添加对应标记:
import matplotlib.pyplot as plt # 先绘制基础折线,不带标记保证线条连贯 plt.plot(dataset['Index'], dataset['Running Total'], color='blue', linestyle='-', linewidth=1) # 定义得分类型和标记形状的对应关系,你可以按需修改 marker_mapping = { 'Ace': 'o', # 圆形 'Forced error': 'x', # 叉形 'Winner': '^', # 上三角形 'Double fault': 's' # 正方形,可替换成其他标记 } # 遍历每个得分类型,绘制对应标记点 for score_type, marker in marker_mapping.items(): # 筛选当前得分类型的数据 filtered_data = dataset[dataset['Score type'] == score_type] # 用scatter绘制标记,s参数控制标记大小 plt.scatter(filtered_data['Index'], filtered_data['Running Total'], marker=marker, label=score_type, s=50) # 添加图例,方便识别不同标记对应的得分类型 plt.legend(title='Score Type') # 设置坐标轴标签,让图表更清晰 plt.xlabel('Index') plt.ylabel('Running Total') plt.show()
关键说明
- 为什么不用原代码的
dataset.plot直接设置?因为它的marker参数只能统一设置所有点的形状,没法按类别区分。 - 先画折线再叠加标记,既能保证折线的连贯性,又能让每个点的标记对应得分类型。
- 你可以根据需求修改
marker_mapping里的标记样式,matplotlib支持的标记包括*(星号)、v(下三角)、D(菱形)等,直接替换对应值就行。
内容的提问来源于stack exchange,提问作者Marc01
相关产品推荐
相关产品推荐

