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

如何按X值区间为Matplotlib散点图的点设置颜色?

Matplotlib按X值为散点图点设置颜色的解决方法
  • 问题根源:plt.plot()的c参数不支持按列表为每个点单独分配颜色,传入列表只会取第一个颜色应用到所有点。要实现按X区间设色,推荐用散点图专用的plt.scatter(),或者逐个绘制点。

  • 方法一:使用plt.scatter()(高效推荐)
    先根据X值生成对应颜色的列表,再传递给c参数:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 示例数据
    x_final = np.random.uniform(0, 10, 50)
    y_final = np.random.uniform(0, 10, 50)
    
    # 遍历生成颜色列表
    colors = []
    for x in x_final:
        if 0 <= x <= 5:
            colors.append('r')
        elif 5 < x <= 10:
            colors.append('g')
        # 可添加更多区间的颜色规则
    
    plt.scatter(x_final, y_final, c=colors)
    plt.show()
    

    也可以用numpy向量化操作简化代码:

    # 用np.where嵌套实现多区间判断,最后一个参数是默认颜色
    colors = np.where((x_final >= 0) & (x_final <= 5), 'r',
                     np.where((x_final > 5) & (x_final <= 10), 'g', 'b'))
    plt.scatter(x_final, y_final, c=colors)
    plt.show()
    
  • 方法二:用plt.plot()逐个绘制点(适合小数据集)
    遍历每个点,根据X值指定颜色绘制:

    for x, y in zip(x_final, y_final):
        if 0 <= x <= 5:
            plt.plot(x, y, 'ro')
        elif 5 < x <= 10:
            plt.plot(x, y, 'go')
    plt.show()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 02:32:20