我有一系列的x,y坐标和多架飞机的相关航向角。我可以画出飞行路线,我想用一个特殊的标记来标记一个特定的位置,这个位置也可以显示飞机在该位置时的航向。在
使用matplotlib.pyplot我用了一个没有底座的箭头来做这个,但是在绘制多架飞机时,不得不定义头部和尾部的位置,最终导致箭头长度不一致。我还使用了一个自定义的三面符号元组(numsides,style,angle)以及楔形和bigvee符号,但它们看起来都不太好。在
从Custom arrow style for matplotlib, pyplot.annotate开始,索洛·卡斯特罗展示了一个漂亮的定制箭头(箭头1),我想知道它是否可以被使用或转换成这样一种方式,即只需在给定的x,y上绘制它,并用一个方向角来定义它的方向。在
我可以用以下内容绘制自定义箭头。关于如何旋转它来反映标题有什么想法吗?在
a1 = np.array([[0,0],[0,1],[-1,2],[3,0],[-1,-2],[0,-1],[0,0]], dtype=float)
polB = patches.Polygon(a1, closed=True, facecolor='grey')
ax.add_patch(polB)
提前谢谢。在
所以我把多边形简化了一点,还发现旋转可以用mpl.transforms.Affine2D()。旋转角度():
我首先试着用x,y坐标画出一条线来覆盖多边形。但是,x轴和y轴的比例不相等(我也不希望它们是相等的),因此多边形在旋转时看起来都扭曲和拉伸。我首先添加了一个新的轴,它具有相同的x/y缩放比例:
^{pr2}$我至少可以旋转所有我想要的,而不是翘曲问题。但是我需要弄清楚如何基本上连接这两个轴,这样我就可以在新的轴上,在一个从原始轴引用的点上绘制多边形。我的方法是使用转换从原始轴上的数据坐标转换,将它们转换为显示坐标,然后将它们反转回数据坐标,但这次在新轴上的数据坐标除外:
这样做感觉有点像鲁比·戈德伯格的机器,但它做到了我想要的。在
最后,我决定我不喜欢这种方法,并继续保持简单,使用一个花哨的箭头而不是多边形。这就是生活。。。在
相关问题 更多 >
编程相关推荐