楔形补丁位置未更新

时间:2016-09-30 18:26:50

标签: python python-3.x matplotlib

我试图通过修改matplotlib.patches.Wedge属性来改变center的位置,但它似乎没有任何影响。

例如:

import matplotlib.pyplot as plt
import matplotlib.patches as patches

fig = plt.figure()
ax = fig.add_subplot(111)

tmp = patches.Wedge([2, 2], 3, 0, 180)
ax.add_artist(tmp)
tmp.center = [4, 4]  # Try to move!

ax.set_xlim([0, 10])
ax.set_ylim([0, 10])
print(tmp.center)
plt.show()

产生以下内容:

sad

这显然不正确。

类似的方法适用于matplotlib.patches.Ellipse

import matplotlib.pyplot as plt
import matplotlib.patches as patches

fig = plt.figure()
ax = fig.add_subplot(111)

tmp = patches.Ellipse([2, 2], 2, 2)
ax.add_artist(tmp)
tmp.center = [4, 4]  # Try to move!

ax.set_xlim([0, 10])
ax.set_ylim([0, 10])
print(tmp.center)
plt.show()

ellip

matplotlib.patches.Rectangle(从center更改为xy

import matplotlib.pyplot as plt
import matplotlib.patches as patches

fig = plt.figure()
ax = fig.add_subplot(111)

tmp = patches.Rectangle([2, 2], 3, 2)
ax.add_artist(tmp)
tmp.xy = [4, 4]  # Try to move!

ax.set_xlim([0, 10])
ax.set_ylim([0, 10])
print(tmp.xy)
plt.show()

rect

我认为可能Wedge使用xy而不是center,但Wedge对象没有xy属性。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

您可能需要update Wedge的属性:

tmp.update({'center': [4,4]})

如您所见,该方法接受指定要更新的属性的dict。

result