<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="import matplotlib.pyplot as plt
import matplotlib.patches as mpatch

fig, ax = plt.subplots()
arrow = mpatch.FancyArrowPatch((0, 0), (0.8, 0.8))
ax.add_artist(arrow)

plt.show()"><pre class="notranslate"><code class="notranslate">import matplotlib.pyplot as plt
import matplotlib.patches as mpatch

fig, ax = plt.subplots()
arrow = mpatch.FancyArrowPatch((0, 0), (0.8, 0.8))
ax.add_artist(arrow)

plt.show()
</code></pre></div>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://cloud.githubusercontent.com/assets/6197628/24082308/71201bca-0cbb-11e7-9918-d01673e89db9.png"><img src="https://cloud.githubusercontent.com/assets/6197628/24082308/71201bca-0cbb-11e7-9918-d01673e89db9.png" alt="figure_1" style="max-width: 100%;"></a></p>
<p dir="auto">FancyArrowPatch defaults to <code class="notranslate">arrowstyle='simple'</code>, which according to the docstring should set</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" 	head_length=0.5,head_width=0.5,tail_width=0.2"><pre class="notranslate"><code class="notranslate"> 	head_length=0.5,head_width=0.5,tail_width=0.2
</code></pre></div>
<p dir="auto">however, this definitely isn't the case.</p>
<p dir="auto">Current <code class="notranslate">master</code> branch installed from source, python 3.6, OSX.</p>
<h3 dir="auto">Bug report</h3>
<p dir="auto">Adding a <code class="notranslate">FancyArrowPatch</code> to an axis changes the result returned by <code class="notranslate">get_path()</code>. I would expect adding an artist to an axis to have no effect on its path in data co-ordinates.</p>
<p dir="auto"><strong>Code for reproduction</strong></p>

<div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import matplotlib.pyplot as plt
import matplotlib.patches as mpatch

# Create arrow patch
arrow = mpatch.FancyArrowPatch((0, 0), (0, 1))

# Print original path
print(arrow.get_path())
# Add to an axis
fig, ax = plt.subplots()
ax.add_artist(arrow)
# Print new path
print(arrow.get_path())"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-s1">matplotlib</span>.<span class="pl-s1">pyplot</span> <span class="pl-k">as</span> <span class="pl-s1">plt</span>
<span class="pl-k">import</span> <span class="pl-s1">matplotlib</span>.<span class="pl-s1">patches</span> <span class="pl-k">as</span> <span class="pl-s1">mpatch</span>

<span class="pl-c"># Create arrow patch</span>
<span class="pl-s1">arrow</span> <span class="pl-c1">=</span> <span class="pl-s1">mpatch</span>.<span class="pl-v">FancyArrowPatch</span>((<span class="pl-c1">0</span>, <span class="pl-c1">0</span>), (<span class="pl-c1">0</span>, <span class="pl-c1">1</span>))

<span class="pl-c"># Print original path</span>
<span class="pl-en">print</span>(<span class="pl-s1">arrow</span>.<span class="pl-en">get_path</span>())
<span class="pl-c"># Add to an axis</span>
<span class="pl-s1">fig</span>, <span class="pl-s1">ax</span> <span class="pl-c1">=</span> <span class="pl-s1">plt</span>.<span class="pl-en">subplots</span>()
<span class="pl-s1">ax</span>.<span class="pl-en">add_artist</span>(<span class="pl-s1">arrow</span>)
<span class="pl-c"># Print new path</span>
<span class="pl-en">print</span>(<span class="pl-s1">arrow</span>.<span class="pl-en">get_path</span>())</pre></div>
<p dir="auto"><strong>Actual outcome</strong></p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Path(array([[-0.1       ,  0.        ],
       [-0.1       ,  0.25195312],
       [-0.1       ,  0.50390625],
       [-0.25      ,  0.50390625],
       [-0.125     ,  0.75195312],
       [ 0.        ,  1.        ],
       [ 0.125     ,  0.75195312],
       [ 0.25      ,  0.50390625],
       [ 0.1       ,  0.50390625],
       [ 0.1       ,  0.25195312],
       [ 0.1       ,  0.        ],
       [-0.1       ,  0.        ],
       [-0.1       ,  0.        ]]), array([ 1,  3,  3,  2,  3,  3,  3,  3,  2,  3,  3,  2, 79], dtype=uint8))


Path(array([[ -2.01612903e-04,   5.40924072e-03],
       [ -2.01612903e-04,   4.99324011e-01],
       [ -2.01612903e-04,   9.93238781e-01],
       [ -5.04032258e-04,   9.93238781e-01],
       [ -2.52016129e-04,   9.93914224e-01],
       [  0.00000000e+00,   9.94589667e-01],
       [  2.52016129e-04,   9.93914224e-01],
       [  5.04032258e-04,   9.93238781e-01],
       [  2.01612903e-04,   9.93238781e-01],
       [  2.01612903e-04,   4.99324011e-01],
       [  2.01612903e-04,   5.40924072e-03],
       [ -2.01612903e-04,   5.40924072e-03],
       [ -2.01612903e-04,   5.40924072e-03]]), array([ 1,  3,  3,  2,  3,  3,  3,  3,  2,  3,  3,  2, 79], dtype=uint8))"><pre class="notranslate"><code class="notranslate">Path(array([[-0.1       ,  0.        ],
       [-0.1       ,  0.25195312],
       [-0.1       ,  0.50390625],
       [-0.25      ,  0.50390625],
       [-0.125     ,  0.75195312],
       [ 0.        ,  1.        ],
       [ 0.125     ,  0.75195312],
       [ 0.25      ,  0.50390625],
       [ 0.1       ,  0.50390625],
       [ 0.1       ,  0.25195312],
       [ 0.1       ,  0.        ],
       [-0.1       ,  0.        ],
       [-0.1       ,  0.        ]]), array([ 1,  3,  3,  2,  3,  3,  3,  3,  2,  3,  3,  2, 79], dtype=uint8))


Path(array([[ -2.01612903e-04,   5.40924072e-03],
       [ -2.01612903e-04,   4.99324011e-01],
       [ -2.01612903e-04,   9.93238781e-01],
       [ -5.04032258e-04,   9.93238781e-01],
       [ -2.52016129e-04,   9.93914224e-01],
       [  0.00000000e+00,   9.94589667e-01],
       [  2.52016129e-04,   9.93914224e-01],
       [  5.04032258e-04,   9.93238781e-01],
       [  2.01612903e-04,   9.93238781e-01],
       [  2.01612903e-04,   4.99324011e-01],
       [  2.01612903e-04,   5.40924072e-03],
       [ -2.01612903e-04,   5.40924072e-03],
       [ -2.01612903e-04,   5.40924072e-03]]), array([ 1,  3,  3,  2,  3,  3,  3,  3,  2,  3,  3,  2, 79], dtype=uint8))
</code></pre></div>
<p dir="auto"><strong>Expected outcome</strong><br>
Clearly the two paths are different - I expected them to be the same (and I would expect the first one to be the correct one based on the <code class="notranslate">FancyArrowPatch</code> docstring).</p>
<p dir="auto"><strong>Matplotlib version</strong></p>

<ul dir="auto">
<li>Operating System: OSX</li>
<li>Matplotlib Version: master branch</li>
<li>Python Version: 3.6.1</li>
</ul>