[英]matplolib arrow is creating a weird vertical line at the arrow head
我正在尝试放置轴箭头。
出于某种原因,当我在我的 plot 上放置一个箭头时,它也会创建一条更大的垂直线。
我正在像这样实例化箭头:
#examples of what would be found within x_length, set, y_length, and ax on the anomalous case
x_length=[30000000000.0]
y_length=[[7.7e-09, 1.613e-08]]
set=0
ax=plt.subplot(1,2,1)
#The problematic statement by itself
arrow=ax.arrow(x_length[set], 0, 0.04*x_length[set], 0, shape='full',head_width=max(y_length[set])*0.04,head_length=0.04*x_length[set],length_includes_head=True,color='black', zorder=2)
当 y 值很大时(假设“t_values>1”),它可以正常工作。 虽然,当 y 值较小时(比如“y_values<1e-6”),这个问题就会出现。
下图显示了预期发生的情况和另一个具有异常行为的情况:
基于这个图,我认为线条总是被画出来,但只有当 y 值很小时才会注意到
注意:使用缩放功能,可以验证箭头是否按预期放置,尽管这条奇怪的线也位于箭头的头部。
我已经尝试修改每个参数,还应用了常量值而不是变量。 虽然,没有任何效果。 此外,即使放置倾斜的箭头,令人不快的线也始终是垂直的。
我解决了这个问题。
这条奇怪的线是无穷小的箭尾宽度。 因此,用包含的宽度 arg 替换箭头方法解决了这个问题。 由于默认宽度为 1e-3,这就是为什么问题只发生在 plot 的一些数量级大于此默认宽度的原因。
ax.arrow(x_max[set], 0, 0.04*x_length[set], 0,shape='full',head_width=y_length[set][i]*0.04,head_length=0.04*x_length[set],length_includes_head=True,color='black', zorder=2,width=max(y_length[set])*0.04)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.