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

关于Matplotlib中+标记edgecolor警告及颜色生效状态的技术问询

关于Matplotlib标记+的颜色警告问题解答

核心结论

这个警告确实是Matplotlib的术语表述混淆,实际它并没有忽略你指定的edgecolor,你的颜色设置完全生效。

原因解释

Matplotlib的标记分两类:

  • 有填充区域的标记(比如圆形o、方形s):这类标记明确区分edgecolor(边缘线颜色)和facecolor(填充面颜色)
  • 纯线条构成的标记(比如+、x、|):这类标记没有填充面的概念,但Matplotlib内部逻辑会把你指定的edgecolor值映射到facecolor的处理路径上,因此弹出这个容易误导的警告,但实际还是用了你设置的edgecolor颜色。

验证方法

你可以用一段简单代码验证效果:

import matplotlib.pyplot as plt
plt.scatter([0], [0], marker='+', fc='red', ec='blue', s=200, linewidth=2)
plt.show()

运行后会看到+标记是蓝色的(也就是你指定的edgecolor),完全符合预期。

针对你的代码

你写的绘图命令:

plt.scatter( df2plus.long_km, df2plus.lat_km, marker='+',
   fc='None', ec=df2plus.MMSIcolr, s=100, linewidth=1 )

这里fc='None'会被Matplotlib忽略,它直接使用ec对应的RGB序列作为+标记的颜色,所以你的颜色设置是正常生效的,不用怀疑颜色不对。

可选操作(屏蔽警告)

如果觉得警告干扰,可以用以下代码屏蔽这个特定警告:

import warnings
warnings.filterwarnings("ignore", message="You passed a edgecolor/edgecolors")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 14:36:06