如何在 matplotlib 中创建自定义发散颜色图?

Dat*_*oob 3 python matplotlib colormap

我想在 matplotlib 中创建一个类似于“RdBu”的颜色图。 传统的“RdBu”

我想按这个顺序制作颜色图:浅蓝色->深蓝色->黑色(中心)->深红色->浅红色。像这样的东西。 所需的色彩图

因此它类似于“RdBu”,但白色变为黑色,深色与浅色互换。所以它只是反转“RdBu”颜色。我不知道该怎么做。

elt*_*tos 8

我制作了一个简单的工具,可以帮助创建颜色图并生成所需的代码:

https://eltos.github.io/gradient/#4C71FF-0025B3-000000-C7030D-FC4A53

截屏

您从下载按钮获得的代码:

#!/usr/bin/env python

from matplotlib.colors import LinearSegmentedColormap

my_gradient = LinearSegmentedColormap.from_list('my_gradient', (
                 # Edit this gradient at https://eltos.github.io/gradient/#4C71FF-0025B3-000000-C7030D-FC4A53
                 (0.000, (0.298, 0.443, 1.000)),
                 (0.250, (0.000, 0.145, 0.702)),
                 (0.500, (0.000, 0.000, 0.000)),
                 (0.750, (0.780, 0.012, 0.051)),
                 (1.000, (0.988, 0.290, 0.325))))


if __name__ == '__main__':
    import numpy as np
    from matplotlib import pyplot as plt
    
    plt.imshow([np.arange(1000)], aspect="auto", cmap=my_gradient)
    plt.show()
Run Code Online (Sandbox Code Playgroud)