【问题标题】:Conditional color with matplotlib scattermatplotlib scatter 条件颜色
【发布时间】:2017-07-16 04:06:58
【问题描述】:

我有以下 Pandas 数据框,其中 a 列代表一个虚拟变量:

我想做的是在b 列的值之后给我的标记一个cmap='jet' 颜色,除非a 列中的值等于1 - 在这种情况下,我希望它是灰色。

知道我该怎么做吗?

【问题讨论】:

    标签: python pandas matplotlib scatter-plot


    【解决方案1】:

    您必须标记等于 1 的值并绘制:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # test data
    t = np.linspace(0, 2 * np.pi, 30)
    x = np.sin(t)
    x[3] = 1
    y = np.cos(t)
    
    # indices for 'bad' values
    indices = x == 1
    # calc colors from jet cmap
    cmap = plt.get_cmap('jet')
    colors = cmap((y - y.min()) / y.ptp())
    
    # normal values
    plt.scatter(t[~indices], x[~indices], c = colors[~indices], cmap = cmap)
    # bad values
    plt.scatter(t[indices], x[indices], c = 'grey')
    plt.show()
    

    数组 t, x, y 代表 pandas 系列。

    【讨论】:

    • 完美运行!非常感谢。
    猜你喜欢
    • 2015-04-10
    • 2021-07-15
    • 2019-06-11
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多