Python 更改Matplotlib中等高线的透明度/删除等高线
我正在使用contourf绘制一些数据,但在设置透明度时遇到了问题。我希望能够设置填充和线条的透明度,但似乎无法做到这一点 我的代码的简化版本如下: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
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
似乎可以解决问题(我知道,这很难看…)。