黑白colorbar

use*_*228 3 python matplotlib colormap

我通常使用matplotlib的"地震"颜色条.

对于出版需求,我必须使用黑白颜色.我想保持与"地震"相同的方面(即最高最小值和最大值的最黑暗值),如图所示:

在此输入图像描述

如何进行此转换?

kwi*_*nks 6

在我看来,最好的想法是使用灰色渐变而不是发散颜色条:

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

data = 2 * np.random.random((100, 100)) - 1

plt.imshow(data, cmap='Greys', interpolation='none')
Run Code Online (Sandbox Code Playgroud)

灰度颜色条的示例

您也可以使用gray它,但它只是一个反转版本,并且会为正值提供白色,这对于地震数据来说并不常见.

如果你开始做你所要求的,我认为最简单的方法可能是PIL用来将图像转换为灰度.

plt.imshow(data, cmap='jet', interpolation='none')
plt.savefig('image.png')
Run Code Online (Sandbox Code Playgroud)

现在转换并保存:

from PIL import Image
im = Image.open('image.png')
im = im.convert('L')
im.save('image_grey.png')
Run Code Online (Sandbox Code Playgroud)