I use pyplot.arrow
do draw some straight arrows, e.g.,
import matplotlib.pyplot as plt
import numpy as np
v={}
for i in range (1,4):
v[i]=np.array([np.cos(-2*np.pi/3*i),np.sin(-2*np.pi/3*i)])
plt.arrow(.85*(.05*v[2]+.95*v[1])[0],.85*(.05*v[2]+.95*v[1])[1],.85*.9*(v[2]-v[1])[0],.85*.9*(v[2]-v[1])[1],width=0,head_width=.03,head_length=.045,length_includes_head=True,color="black")
plt.arrow(.85*(.05*v[3]+.95*v[2])[0],.85*(.05*v[3]+.95*v[2])[1],.85*.9*(v[3]-v[2])[0],.85*.9*(v[3]-v[2])[1],width=0,head_width=.03,head_length=.045,length_includes_head=True,color="black")
plt.arrow(.85*(.05*v[1]+.95*v[3])[0],.85*(.05*v[1]+.95*v[3])[1],.85*.9*(v[1]-v[3])[0],.85*.9*(v[1]-v[3])[1],width=0,head_width=.03,head_length=.045,length_includes_head=True,color="black")
plt.axes().set_xlim(-.5,1)
plt.axes().set_ylim(-np.sqrt(3)/2,np.sqrt(3)/2)
plt.axes().set_aspect(1)
plt.show()
Now I want to also draw some arrows that have circular curvature instead of being straight. I see that I can achieve this with pyplot.annotate()
or patches.FancyArrowPatch
with connectionstyle="arc3,rad=.5"
or so.
But these arrows look completely different from the pyplot.arrow
s and do not fit with the rest of my figures. And I don't know how I could pass something like connectionstyle
to pyplot.arrow
. Is there a way to draw curved arrows that look exactly like those that I get from pyplot.arrow
?