【问题标题】:Black and white colorbar黑白彩条
【发布时间】:2016-02-28 15:09:42
【问题描述】:

我通常使用 matplotlib 的“地震”颜色条。

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

如何进行这种转换?

【问题讨论】:

  • 只是我的意见,但如果地震是灰度的,那么最好不要使用发散的颜色条——因为这样你的读者就看不到正振幅和负振幅之间的差异。
  • 你看到其他可能性了吗?我同意我们看不到差异,但我必须使用黑色和白色,并且我有正负值......
  • 使用简单的灰度渐变(白色表示负片是常规的)。
  • 要么这样,要么以其他方式表示您的数据。等高线图通常在黑白中看起来更好。您还可以使用 3D 线框曲面图。

标签: python matplotlib colormap


【解决方案1】:

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

import numpy as np
import matplotlib.pyplot as plt

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

plt.imshow(data, cmap='Greys', interpolation='none')

您也可以使用gray,但它只是一个颠倒的版本,将给您白色表示正值,这对于地震数据来说是不常见的。

如果您打算按照您的要求做,我认为最简单的方法可能是使用PIL 将图像转换为灰度。

plt.imshow(data, cmap='jet', interpolation='none')
plt.savefig('image.png')

现在转换并保存:

from PIL import Image
im = Image.open('image.png')
im = im.convert('L')
im.save('image_grey.png')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多