我想对补丁应用不同的转换,包括
旋转和更改填充颜色。
Hier是一段已经受到Matplotlib: rotating a patch启发的代码import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib as mpl
from matplotlib.collections import PatchCollection
fig = plt.figure()
ax = fig.add_subplot(111)
myAngles=[0, -45, -90]
myColors=[30, 40, 50]
myPatches=[]
for color, angle in zip (myColors,myAngles):
#r2 = patches.Rectangle((0,0), 20, 40, color=color, alpha=0.50)
r2 = patches.Rectangle((0,0), 20, 40)
t2 = mpl.transforms.Affine2D().rotate_deg(angle) + ax.transData
r2.set_transform(t2)
#ax.add_patch(r2)
myPatches.append(r2)
plt.xlim(-20, 60)
plt.ylim(-20, 60)
plt.grid(True)
collection = PatchCollection(myPatches, cmap=mpl.cm.jet, alpha=0.5)
collection.set_array(np.array(myColors))
ax.add_collection(collection)
plt.show()
不幸的是,当我离开for循环时,转换就丢失了。如果我把补丁添加到循环内的ax上,那么一切都很好。但我必须在最后完成,因为颜色是在循环中收集的,应该在以后应用。在
我们非常感谢您的任何建议
干杯
扶手