0
A
回答
1
可以使用正弦/余弦,Arc和arrow画一个圆圈,并在matplotlib旋转箭头:
import math
from matplotlib.patches import Arc
import matplotlib.pyplot as plt
ax = plt.axes()
x0, y0 = 0.5, 0.5
radius = 0.4
angle = 135
angle_rad = angle * math.pi/180 # degrees to radians
# Draw circle
circle = plt.Circle((x0,y0), radius, color='red', fill=False)
fig = plt.gcf()
fig.gca().add_artist(circle)
# Draw radius arrow
head_length = 0.05
ax.arrow(x0, y0,
(radius - head_length) * math.cos(angle_rad),
(radius - head_length) * math.sin(angle_rad),
head_width=0.05, head_length=head_length, fc='k', ec='k')
# Draw arc with arrow.
arc_radius = radius/4
arc = Arc((x0, y0),
arc_radius*2, arc_radius*2, # ellipse width and height
theta1=0, theta2=angle, linestyle='dashed')
ax.add_patch(arc)
arc_arrow_length = 0.03
arc_arrow_dx = arc_arrow_length * math.cos(angle_rad + math.pi/2)
arc_arrow_dy = arc_arrow_length * math.sin(angle_rad + math.pi/2)
ax.arrow(
x0 + arc_radius * math.cos(angle_rad) - arc_arrow_dx,
y0 + arc_radius * math.sin(angle_rad) - arc_arrow_dy,
# We want to define a vector,
# but we don't want to draw any line besides arrow head,
# so we make arrow "body" unnoticeable.
arc_arrow_dx * 0.000001,
arc_arrow_dy * 0.000001,
head_width=0.01,
head_length=0.03,
color='black')
plt.show()
请注意,这个解决方案是不干净的,有可能是一个更好的方式一次绘制弧线和箭头。
你可能想尝试FancyArrowPatch绘制一个不错的箭头。
1
使用plt.annotate,在箭头参数中可以传递连接样式,该连接样式将定义您绘制的线条的曲率。这里是来自SciPy文档的an example。之后,您只需设置线型并为每个图确定开始点和结束点。
相关问题
- 1. 在圆内旋转的两个箭头
- 2. 旋转箭头图像
- 3. 将箭头绘制到圆形
- 4. 如何在MyLocationOverlay中将旋转箭头绘制为标记?
- 5. 如何手动绘制箭头给定的旋转角度 - android
- 6. 旋转箭头,即在鼠标移动上绘图
- 7. 用gnuplot绘制箭头
- 8. JavaFX如何旋转绘制圆心
- 9. 元素内侧的圆滑的旋转木马箭头
- 10. 绘制地图:箭头消失
- 11. 直接在matplotlib图上绘制箭头
- 12. iPhone:旋转绘图而不旋转绘制它的视图
- 13. React-Slick旋转木马 - 禁用箭头
- 14. 动态绘制箭头android
- 15. 容易箭头绘制
- 16. Android drawable xml:绘制箭头
- 17. 绘制箭头与轮廓
- 18. 使用纯CSS绘制箭头周围的箭头
- 19. 在matplotlib中绘制带箭头的钝圆弧
- 20. 将椭圆的绘制点旋转为圆形
- 21. 在android中绘制箭头头
- 22. 用CGContext绘制三角形/箭头线
- 23. 绘制箭头不起作用
- 24. 使用Javascript线绘制箭头至
- 25. 用Java中的箭头绘制线条
- 26. 使用挥杆绘制箭头
- 27. 如何用java2d绘制箭头?
- 28. 绘制一个箭头,然后围绕它的起点旋转它AS3
- 29. 在Android中的画布上绘制圆圈外的位图(箭头)
- 30. 如何在点击时旋转箭头?
感谢您的回复。这很有帮助。但是我想要做的就是在假想线' - '上绘制旋转箭头。 –
@韩正祖这个问题出人意料的困难。我添加了一个解决方案,但感觉像是一个黑客。无法找到用箭头结束弧线的正确方法。 – alexanderlukanin13
非常感谢。我会尽力。 –