【问题标题】:use a 2-axes colormap in matplotlib在 matplotlib 中使用 2 轴颜色图
【发布时间】:2016-03-07 13:19:38
【问题描述】:

有没有一种实用的方法来使用/定义一个“漂亮”的 Matplotlib 颜色图,它取决于两个实变量 cmap2d(a1,a2),当然例如:0.<= a1 <= 1. & 0.<= a2 <= 1.

基本上它应该被定义为一个常规的颜色图,但定义在一个二维帧上......

【问题讨论】:

    标签: python matplotlib color-mapping


    【解决方案1】:

    是的,您可以定义 2D 颜色图。

    因为您的 2D 颜色图的输出是单变量的(让我们暂时忘记 RGB 通道),您总是可以分两步来表达它:

    1. 计算一个函数f(a1, a2)
    2. 将函数的输出传递给您选择的颜色图。

    鉴于上面的分解,您不必太担心颜色图是否需要一个或两个(或更多)参数,因为您总是可以用普通的一维颜色图来表达它。

    如果您愿意将不同的渠道视为不同的变量,您可以执行以下操作:

    import numpy as np
    from matplotlib import pyplot as plt
    # Create a grid of values
    x = np.linspace(0, 1)
    y = np.linspace(0, 1)
    xx, yy = np.meshgrid(x, y)
    # Apply some function
    xx = xx ** 2
    yy = np.sin(np.pi * yy)
    # Plot as RGB values
    img = np.transpose((xx, yy, np.zeros_like(xx)))
    plt.imshow(img)
    

    【讨论】:

    • 谢谢。但是不会有唯一的意义,即:(1)不可能从颜色中猜测值,(2)不确定是否会有一对(a1,a2)给出单一颜色(应该选择一个好的功能...)
    • 您的观点是有效的,但这是将输入参数映射到单个输出参数的基本限制。我已经更新了答案,假设您愿意用一个 RGB 通道来表示每个变量。
    猜你喜欢
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    相关资源
    最近更新 更多