在Python的matplotlib库中,很容易在创建时指定轴对象的投影:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
ax = plt.axes(projection='3d')
但是如何确定现有轴对象的投影?没有ax.get_projection
,ax.properties
不包含"投影"关键,快速谷歌搜索没有任何有用的东西。
答案 0 :(得分:3)
我认为没有自动化的方法,但显然只有3D投影才有一些属性(例如zlim
)。
所以你可以写一个小帮手函数来测试它的3D是否:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
def axesDimensions(ax):
if hasattr(ax, 'get_zlim'):
return 3
else:
return 2
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212, projection='3d')
print "ax1: ", axesDimensions(ax1)
print "ax2: ", axesDimensions(ax2)
打印哪些:
ax1: 2
ax2: 3
答案 1 :(得分:2)
事实证明,这里给出的答案实际上是对这个问题更好的答案:python check if figure is 2d or 3d 我在副本中提供的答案是对这个问题的更好答案。
在任何情况下,您都可以使用轴的name
。这是决定投影的字符串。
plt.gca().name or ax.name
如果ax
是轴。
3D轴的名称将为"3d"
。 2D轴的名称将为"rectilinear"
,"polar"
或其他名称,具体取决于绘图的类型。自定义投影将具有自定义名称。
因此,只需使用ax.get_projection()
而不是ax.name
。