Matplotlib doesn't render surfaces correctly. It struggles with "what should be in front". This page: https://discourse.matplotlib.org/t/plot-solid-3d-surface-on-top-of-another-one/24665/2 Offers some notes on potential solutions to this problem.