我试图导出一个带有颜色条的pcolor图形。颜色条的cmap有一个透明颜色。导出的图形在轴中有透明颜色,但在颜色条中没有。我如何解决这个问题?
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
x = np.random.random((10, 10))
colors = [(0,0,0,0), (0,0,0,1)]
cm = LinearSegmentedColormap.from_list('custom', colors, N=256, gamma=0)
plt.pcolor(x,cmap=cm)
plt.colorbar()
plt.savefig('figure.pdf',transparent=True)
我把图像放在灰色背景下进行检查。可以看到,坐标轴中的cmap是透明的,而颜色条中的cmap不是。
1条答案
按热度按时间vql8enpb1#
当颜色条位于轴中时,它有一个额外的背景补丁与之关联。默认情况下,这是白色,当
transparent=True
在savefig
中使用时,将不会被考虑在内。因此,一种解决方案是手动去除该补丁的面部颜色,
一个完整的例子,它显示了这一点,而没有实际保存的数字