Arrow in log space

Hi,

How does one plot an arrow in a log log plot? In the following example, I can't get the arrow head, regardless of what value I use for the head width:

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.arrow(0.2,0.2,0.5,0.5,head_width=1.)
ax.set_xscale('log')
ax.set_yscale('log')
ax.set_xlim(0.1,1.)
ax.set_ylim(0.1,1.)
fig.savefig('test.png')

In addition, the documentation for arrow does not even mention any arrow specific options such as the head width/length, and the example plot is missing (there is a 'Exception occurred rendering plot.' message instead)

http://matplotlib.sourceforge.net/api/axes_api.html?highlight=arrow#matplotlib.axes.Axes.arrow

Thanks for any help,

Thomas

I can’t say anything with regards to why your figure is not working, or why the plot fails to render online (it renders just fine for myself when built locally). However, I have noticed that the lack of information regarding the options for arrow seems to be related to the docstring for arrow() referring to the kwargs for FancyArrow, but none of those are defined. And the docstring for FancyArrow appears to be incomplete.

Ben Root

···

On Wed, Jul 28, 2010 at 3:56 PM, Thomas Robitaille <thomas.robitaille@…287…> wrote:

Hi,

How does one plot an arrow in a log log plot? In the following example, I can’t get the arrow head, regardless of what value I use for the head width:

import matplotlib as mpl

mpl.use(‘Agg’)

import matplotlib.pyplot as plt

fig = plt.figure()

ax = fig.add_subplot(1,1,1)

ax.arrow(0.2,0.2,0.5,0.5,head_width=1.)

ax.set_xscale(‘log’)

ax.set_yscale(‘log’)

ax.set_xlim(0.1,1.)

ax.set_ylim(0.1,1.)

fig.savefig(‘test.png’)

In addition, the documentation for arrow does not even mention any arrow specific options such as the head width/length, and the example plot is missing (there is a ‘Exception occurred rendering plot.’ message instead)

http://matplotlib.sourceforge.net/api/axes_api.html?highlight=arrow#matplotlib.axes.Axes.arrow

Thanks for any help,

Thomas