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()
我用 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()