如何为Matplotlib散点图的单个点设置两种颜色?
实现Matplotlib单散点双颜色的方案
你说的叠加实心点和环形的思路完全可行,Matplotlib里虽然没有现成的环形标记,但可以用空心圆来模拟环形,直接叠加两个散点就能达到效果:
import matplotlib.pyplot as plt point_x = [1] point_y = [1] col1 = ['blue'] col2 = ['red'] # 绘制中心实心圆点 plt.scatter(point_x, point_y, c=col1, marker='o', s=100) # 绘制外围环形:设置facecolor为透明,用edgecolor指定环形颜色,调大尺寸和边缘宽度 plt.scatter(point_x, point_y, c=col2, marker='o', s=150, facecolor='none', markeredgewidth=3) plt.show()
关键参数说明:
- 第二个散点的
s(尺寸)要大于第一个,保证环形能包裹住中心实心点 markeredgewidth控制环形的粗细,按需调整数值即可facecolor='none'让环形中间透明,露出下方的实心点颜色
如果需要更复杂的自定义标记,也可以用matplotlib.path.Path创建专属marker,但上面的方法已经足够简单高效。
内容的提问来源于stack exchange,提问作者Billy Matlock
相关产品推荐
相关产品推荐

