如何在matplotlib中制作条纹补丁?

时间:2017-10-24 14:28:15

标签: python matplotlib

我想制作条纹的贴片(例如,Rectangle)(例如,以45°的角度交替等厚的黄色和红色线)。我可以想到两种方式,但两者看起来都比它们应该更复杂:1)制作implot并屏蔽它,以及2)为每个条带生成单独的补丁。有没有更好的方法来做到这一点,最好是一个可以保存为矢量图形的方法?

1 个答案:

答案 0 :(得分:1)

根据所需的输出,您可以使用阴影线。这有几个缺点;但仍可满足需求。

import matplotlib.pyplot as plt

plt.rcParams["hatch.linewidth"] = 4
rec1 = plt.Rectangle((1,1),2,1.5, facecolor="limegreen", 
                     edgecolor="darkgreen", hatch=r"\\" )

rec2 = plt.Rectangle((4,2),1,1, facecolor="indigo", 
                     edgecolor="gold", hatch=r"//")

fig, ax = plt.subplots()
ax.add_patch(rec1)
ax.add_patch(rec2)
ax.margins(0.3)
ax.autoscale()
plt.show()

enter image description here

如您所见,您需要通过rcParams设置阴影线宽。此外,阴影角度无法控制,仅为0.45,90度。最后,阴影密度将取决于使用的图形尺寸和dpi。