我使用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.是否有人知道如何修改它以使它们与填充的透明度相同?或者,完全去除轮廓线可能会起作用,但我喜欢contourf方法,因为它使得可视化更容易(除了前面提到的线!)
我的目标是显示一个底图,这样线条会增加我的情节的复杂性,因此想要删除/使它们不可见。
提前致谢!
更新:显示问题的更多图表
Alpha设置为0.6,AntiAliased设置为True:
pp = m.contourf(longitude, latitude, imagelist[0], 50,
cmap='YlOrRd', extend="min", alpha = 0.6, antialiased = True)
这改善了线条,但仍然没有摆脱它们。
答案 0 :(得分:0)
使用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)
时仍然看到的线条实际上不是线条,而是透过的背景,因为填充的轮廓不会相互接触。
一个非常丑陋的修复可能是两次相同,但水平略有不同。
{{1}}
注意,您还必须将alpha值分成两半才能获得相同的透明度。 你仍会看到线条,但不像以前那么强烈。