Matplotlib arrow positioning

Viewed 173

I noticed that the positioning of pyplot.arrow (white) is odd.

I misused pyplot.quiver (black) as reference:

import numpy as np
import matplotlib.pyplot as plt

Z = np.random.random((50,50))

fig, ax = plt.subplots(figsize=(5.9,5.9))

im = ax.imshow(Z, origin='lower', cmap='coolwarm')

ax.hlines( 10 , 0, Z.shape[0]-1, color='black', ls='-', lw=1, alpha=.3)
ax.hlines( 40 , 0, Z.shape[0]-1, color='black', ls='-', lw=1, alpha=.3)

ax.arrow( 10, 10, 0, 30, color='white', head_width=1, length_includes_head=True)
ax.quiver(20, 10, 0, 30, angles='xy', scale_units='xy', scale=1)

ax.grid(visible=False)
fig.savefig('arrows.jpg', dpi=300)

plot

The head overshoots considerably ...

arrow heads

... and the tail is actually off as well.

arrow tails

Am I doing something wrong or is there a way to fix this?

0 Answers
Related