pyplot图的add_axes将新轴附加到具有相同位置的旧轴

时间:2019-07-11 09:05:35

标签: python python-3.x matplotlib

当我尝试在最初放置另一个轴的同一位置上使用fig.add_axes将轴添加到pyplot图形中时,pyplot只是引用了旧轴。

我有一个要求在哪里制作图形,然后可以添加轴。根据要求,添加不同的轴。

我尝试将ax.set_position的“哪个”参数设置为“活动”和“原始”两者,但是没有一个。

import matplotlib.pyplot as plt

fig = plt.figure()

ax1 = fig.add_axes([0.07, 0.1, 0.88, 0.2])
ax1.set_position([0.07, 0.3, 0.88, 0.2], which='active')
ax2 = fig.add_axes([0.07, 0.1, 0.88, 0.2])
ax2.set_position([0.07, 0.3, 0.88, 0.5])

# When trying to set position of either figure it simply moves them both
# as ax2 is a reference to ax1
ax1.set_position([0.07, 0.1, 0.88, 0.2])

如何获取它,例如ax2是未引用到ax1的独立对象?

1 个答案:

答案 0 :(得分:0)

我自己找到了一个答案-就是这样,以防其他人遇到类似的问题。

该问题将在下一版的matplotlib中修复,但与此同时,可以通过在每个轴上指定标签来绕过该问题。

import matplotlib.pyplot as plt
fig = plt.figure()

ax1 = fig.add_axes([0.07, 0.1, 0.88, 0.2], label='no_1')
ax1.set_position([0.07, 0.3, 0.88, 0.2], which='both')
ax2 = fig.add_axes([0.07, 0.1, 0.88, 0.2], projection=None)
ax2.set_position([0.07, 0.1, 0.88, 0.5], label='no_2')