我想要我的轮廓半透明,但我的颜色条不是

Ame*_*mer 2 python matplotlib

颜色条与我放置在图像上的轮廓图具有相同的透明度。

我可以通过在最低的“zorder”位置添加一个没有透明度的假轮廓图来实现不透明的颜色条,但我想有一种正确的方法吗?

这给了我一个半透明的颜色条:

cs = m.contourf(xv,yv,zi,zorder=4,alpha=0.7,origin="lower")
cbar = m.colorbar(cs,location='right',pad="5%")
Run Code Online (Sandbox Code Playgroud)

Joe*_*ton 6

你可以做到,但没有专门的方法专门用于这一点。(也许应该有。)相反,您可以手动修改 的alphacbar.solids

例如,让我们演示一下一般问题:

import numpy as np
import matplotlib.pyplot as plt

data = np.random.random((10,10))

fig, ax = plt.subplots()
im = ax.imshow(data, cmap='gist_earth', alpha=0.5)

cbar = fig.colorbar(im)

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

然后如果我们改变透明度cbar.solids

import numpy as np
import matplotlib.pyplot as plt

data = np.random.random((10,10))

fig, ax = plt.subplots()
im = ax.imshow(data, cmap='gist_earth', alpha=0.5)

cbar = fig.colorbar(im)
cbar.solids.set(alpha=1)

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

附带说明一下,如果您使用的是 transparentcontour而不是contourf,您可能还想修改alphaall of的值cbar.lines