如何自定义“ matplotlib.patches.ArrowStyle”?

时间:2019-07-09 10:03:24

标签: python matplotlib annotations patch

我可以创建自定义的matplotlib.patches.ArrowStyle吗?

import matplotlib.pyplot as plt
from matplotlib.patches import ArrowStyle

plt.figure(1, figsize=(9,9))

ArrowStyle("Test", head_length=.4, head_width=200, tail_width=2)

ax = plt.subplot(111)

ax.annotate("",
            xy=(0.2, 0.2), xycoords='data',
            xytext=(0.8, 0.8), textcoords='data',
            arrowprops=dict(arrowstyle="Test",
                            connectionstyle="arc3"), 
            )

plt.show()

?

我想改变头和尾的宽度。在matplotlib documentation on matplotlib.patches.arrowstyle中写道,可以将箭头样式对象创建为ArrowStyle("Fancy", head_length=.4, head_width=.4, tail_width=.4)。但是,当我更改参数时,箭头的样式保持不变。

1 个答案:

答案 0 :(得分:0)

必须使用预定义样式,例如Fancy。此外,ArrowStyle和参数必须添加到ax.annotate内的相应位置。

import matplotlib.pyplot as plt
from matplotlib.patches import ArrowStyle

plt.figure(1, figsize=(9,9))

ax = plt.subplot(111)

ax.annotate("",
            xy=(0.2, 0.2), xycoords='data',
            xytext=(0.8, 0.8), textcoords='data',
            arrowprops=dict(arrowstyle=("Fancy, head_length=5, head_width=10, tail_width=5"),
                            connectionstyle="arc3"), 
            )

plt.show()

enter image description here