Python matplotlib中scatter函数参数c与cmap的赋值规则疑问
matplotlib scatter()函数c参数赋值规则
c参数的核心作用是定义每个散点的颜色,支持三类合法输入:
- 单一颜色值:直接传入表示颜色的字符串(如
'red'、#FF5733)、RGB/RGBA元组,所有散点会统一使用该颜色。 - 颜色列表:传入和散点数量长度完全一致的列表,列表的每个元素对应单个散点的颜色值,可单独为每个点指定不同颜色。
- 数值映射序列:传入和散点数量长度一致的数值型列表/数组,matplotlib会自动将数值映射到
cmap参数指定的颜色映射表的色阶上,数值大小对应色阶的不同位置,这也是你示例代码中使用的模式。
你测试的两种赋值方式都符合数值映射序列的要求:
- 传入
point_numbers时,颜色会跟随点的生成顺序变化,能直观体现随机游走的先后路径- 传入
rw.x_values时,颜色会跟随点的x坐标大小变化,仅映射逻辑不同,参数本身是合法的
使用数值映射序列模式时,还可以配合vmin、vmax参数手动指定数值映射的上下限,未指定时matplotlib会自动取传入序列的最小值、最大值作为映射边界。
内容的提问来源于stack exchange,提问作者meditatorLL
相关产品推荐
相关产品推荐

