Python 更改Matplotlib中等高线的透明度/删除等高线

Python 更改Matplotlib中等高线的透明度/删除等高线,python,matplotlib,contourf,Python,Matplotlib,Contourf,我正在使用contourf绘制一些数据,但在设置透明度时遇到了问题。我希望能够设置填充和线条的透明度,但似乎无法做到这一点 我的代码的简化版本如下: array = np.random.rand(100,100) #lonit and latit are latitude and longitude grids from an input dataset LONG, LAT = np.meshgrid(lonit, latit) longitude,latitude = m(LONG, LAT

我正在使用contourf绘制一些数据,但在设置透明度时遇到了问题。我希望能够设置填充和线条的透明度,但似乎无法做到这一点

我的代码的简化版本如下:

array = np.random.rand(100,100)

#lonit and latit are latitude and longitude grids from an input dataset
LONG, LAT = np.meshgrid(lonit, latit)
longitude,latitude = m(LONG, LAT)

pp = m.contourf(longitude, latitude, imagelist[0], 50,
            cmap='YlOrRd', extend="min", alpha = .5) 

plt.show()
这将产生:

如您所见,尽管alpha设置为0.5,轮廓线的透明度仍保持为1。是否有人知道如何修改此项,使其具有与填充相同的透明度?或者,完全删除轮廓线可能会奏效,但我喜欢轮廓线方法,因为它使可视化更容易(除了前面提到的线条!)

我的目标是在下面显示一个底图,这样线条会增加我的绘图的复杂性,从而希望删除/使它们不可见

提前谢谢

更新:显示问题的更多图表

Alpha设置为1.0:

Alpha设置为0.1:

Alpha设置为0.6,抗锯齿设置为True:

pp = m.contourf(longitude, latitude, imagelist[0], 50,
cmap='YlOrRd', extend="min", alpha = 0.6, antialiased = True) 


这改善了生产线,但仍然没有摆脱它们

使用
antialiased=True
时仍然看到的线条实际上不是线条,而是闪烁的背景,因为填充轮廓彼此不接触

一个非常难看的解决办法可能是绘制相同的两次,但级别略有不同

pp1 = m.contourf(longitude, latitude, imagelist[0], 50, cmap='YlOrRd', extend="min", alpha = 0.3, antialiased = True)
pp2 = m.contourf(longitude, latitude, imagelist[0], 55, cmap='YlOrRd', extend="min", alpha = 0.3, antialiased = True)
请注意,还必须将alpha值一分为二才能获得相同的透明度。
您仍然可以看到线条,但不像以前那样强烈。

使用
antialiased=True
时仍然可以看到的线条实际上不是线条,而是闪烁的背景,因为填充轮廓彼此不接触

一个非常难看的解决办法可能是绘制相同的两次,但级别略有不同

pp1 = m.contourf(longitude, latitude, imagelist[0], 50, cmap='YlOrRd', extend="min", alpha = 0.3, antialiased = True)
pp2 = m.contourf(longitude, latitude, imagelist[0], 55, cmap='YlOrRd', extend="min", alpha = 0.3, antialiased = True)
请注意,还必须将alpha值一分为二才能获得相同的透明度。
你仍然会看到线条,但不像以前那么强烈。

你确定
alpha
参数不会改变两者的透明度吗?尝试过进一步降低alpha?大家好,我已经用更多显示不同alpha水平的图像更新了问题Alpha=0生成一个完全不可见的绘图,这意味着其透明度正在改变。也许我需要完全删除轮廓线,所以我会将此选项添加到原始问题中。当Alpha<1时,Matplotlib Contourf可能会重复绘制不需要的轮廓线,我以前也遇到过类似的问题;有时调用
contourf
两次似乎可以解决问题(我知道,这很难看…)。你确定
alpha
参数不会改变两者的透明度吗?尝试过进一步降低alpha?嗨,你们两位,我用更多显示不同alpha水平的图像更新了这个问题Alpha=0生成一个完全不可见的绘图,这意味着其透明度正在改变。也许我需要完全删除轮廓线,所以我会将此选项添加到原始问题中。当Alpha<1时,Matplotlib Contourf可能会重复绘制不需要的轮廓线,我以前也遇到过类似的问题;有时,两次调用
contourf
似乎可以解决问题(我知道,这很难看…)。