繁体   English   中英

绘图 matplotlib.pyplot 中的箭头

[英]arrow in plot matplotlib.pyplot

我无法让箭头像我想要的那样显示。 这是我正在尝试做的一个例子:

import matplotlib.pyplot as plt
import numpy as np

b = np.arange(5)*-1E-4
a = np.arange(5)

fig, ax = plt.subplots()
ax.plot(a,b, linewidth=3, color="k") 
plt.arrow(1,-0.00010,0,-0.00005, shape='full', lw=3, length_includes_head=True, head_width=.01)
plt.show()

据我了解,这应该会产生一个从 (1,-0.00010) 开始到 (1,-0.00015) 结束的箭头但结果是一条更长的线,不再看起来像一个箭头,而不是开始和停止正确的点。

在此处输入图片说明

因为您使用的是如此小的比例,所以您没有明确传递给plt.arrow一些参数将使用它们的默认值,这在您的情况下不会给出一个好的结果。

查看文档,如果没有传递宽度值,则默认值为 0.001,则头部宽度将为 0.003,头部长度将为 0.0015。 因为使用默认值的头部宽度太小,而头部长度太大,你会在问题中看到输出

因此,您需要传入参数head_widthhead_length

plt.arrow(1, -0.00010, 0, -0.00005, length_includes_head=True,
          head_width=0.08, head_length=0.00002)

这使:

在此处输入图片说明

您可以使用注释绘制箭头。 matplotlib 文档

a = np.linspace(-2,2, 100)
plt.plot(a, a**2)
plt.annotate("here", xy=(0, 0), xytext=(0, 2), arrowprops=dict(arrowstyle="->"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM