You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用matplotlib绘图时如何修改单个数据点的marker标记样式

解决方案

plt.plot() 批量传入所有坐标时仅支持设置统一的标记样式,要实现不同点位使用不同标记,需按点位单独指定标记样式后逐个绘制,修改后的完整代码如下:

import matplotlib.pyplot as plt
import numpy as np

plt.title('Map')

plt.gca().invert_yaxis()

RedLineNames = np.array(["Tub Gallery","Maul Gallery","Rocket Gallery","ClasseArt Gallery ","Wiseworlds Gallery"])
RedLineCoords = np.array([[3950, 4250],[1350,450],[3550, 3200],[2500, 2500],[400, 2750]])

# 自定义标记样式:第一个点圆形、第二个点正方形、其余点沿用原三角形
markers = ['o', 's'] + ['^'] * (len(RedLineCoords) - 2)
for x, y, m in zip(RedLineCoords[:,0], RedLineCoords[:,1], markers):
    # 单独绘制每个标记点,关闭线型避免多余连线
    plt.plot(x, y, marker=m, markersize=10, color='red', linestyle='')

# 绘制红色连线
plt.plot(RedLineCoords[:,0], RedLineCoords[:,1], 'r-')

# 添加点位名称标注
for i in range(len(RedLineCoords)):
    plt.text(RedLineCoords[i,0], RedLineCoords[i,1]+20, RedLineNames[i])
    
plt.show()

改动说明

  • 删除了原代码中批量绘制统一三角形标记的语句
  • 新增自定义标记列表,按需求设置前两个点的标记样式,其余点位保持原有三角形样式
  • 遍历所有点位单独绘制标记,设置linestyle=''避免单个点绘制时产生多余的短线段
  • 原有连线逻辑、标注逻辑均保持不变,不影响原有显示效果

内容的提问来源于stack exchange,提问作者Bibyts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:45:00