小编典典

Matplotlib:旋转补丁

python

我想在matplotlib中旋转一个Rectangle,但是当我应用转换时,该矩形不再显示:

rect = mpl.patches.Rectangle((0.0120,0),0.1,1000)
t = mpl.transforms.Affine2D().rotate_deg(45)
rect.set_transform(t)

这是一个已知的错误还是我做错了?


阅读 222

收藏
2020-12-20

共1个答案

小编典典

显然,面片上的变换是用于处理缩放和边界框的几种变换的组合。将变换添加到现有的绘图变换中似乎可以提供更多您所期望的东西。虽然看起来还有一些补偿需要解决。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib as mpl
fig = plt.figure()
ax = fig.add_subplot(111)

rect = patches.Rectangle((0.0120,0),0.1,1000)

t_start = ax.transData
t = mpl.transforms.Affine2D().rotate_deg(-45)
t_end = t_start + t

rect.set_transform(t_end)

print repr(t_start)
print repr(t_end)
ax.add_patch(rect)

plt.show()
2020-12-20