首页 > 解决方案 > matplotlib 3D 图上令人困扰的框架

问题描述

我用 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 并排的图形。

标签: pythonnumpymatplotlib3d

解决方案


plt.subplots(...)当然,Matplotlib 被告知您需要启用 3D 的轴之前,您调用它会实例​​化一个完整的轴,包括水平和垂直脊柱。

当你稍后打电话plt.gca(...)时为时已晚......</p>

只需使用

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非常灵活……</p>

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

推荐阅读