matplotlib 3D 图上的干扰帧

Bothering frame on matplotlib 3D plots

我用 matplotlib 制作 3d 图,我总是在我的图周围得到一个带有标准化比例的奇怪框架。它来自哪里,我该如何摆脱它?

这是一个促使我解决问题的示例代码:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D



x = np.linspace(0,10)
y = np.linspace(0,10)
z = np.linspace(0,10)

# ------------- Figure ---------------
fig, ax = plt.subplots(figsize = (9,6))

ax = fig.gca(projection='3d')
ax.plot(np.sin(x), np.cos(y), z)

plt.show()

结果如下:

我使用 plt.subplots() 因为我想要并排显示 3D 和 2D 图的图形。

您调用 plt.subplots(...),这当然会实例化一个轴,完成水平和垂直脊柱,before Matplotlib 被告知您想要启用 3D 的轴。

当您稍后调用 plt.gca(...) 时,为时已晚……

简单使用

fig, ax = plt.subplots(figsize = (9,6), subplot_kw={"projection" : "3d"})

fig = plt.figure(figsize = (9,6))
ax = fig.add_subplot(111, projection='3d')

解决 OP 的评论

Figure.add_subplot 非常灵活……

fig = plt.figure()
fig.add_subplot(1,5,(1,4), projection='3d')
fig.add_subplot(1,5,5)
fig.tight_layout()
plt.show()