Matplotlib's 3D plotting is really a "2.5D" renderer that does not handle plane intersections well. However if you like you can manually split up the planes along the intersection lines to get the same effect. See this gallery example for a demo: https://matplotlib.org/stable/gallery/mplot3d/intersecting_planes.html#sphx-glr-gallery-mplot3d-intersecting-planes-py