python xycoords_python – matplotlib annotate xycoords =(‘data’,’axes fraction’)=> TypeError:’NoneT...

>>> import matplotlib

>>> matplotlib.__version__

'0.99.1.1'

运行以下代码:

import matplotlib.pyplot as plt

plt.figure()

ax=plt.axes([.1,.1,.8,.8])

ax.annotate('++++',xy=(.5,.2),xycoords='data')

ax.annotate('aaaa',.4),xycoords='axes fraction')

#ax.annotate('bbbb',.6),xycoords=('data','axes fraction'))

plt.show()

但注释掉的ax.annotate给出了一个错误:

TypeError: 'NoneType' object is not iterable

根据当前的文档,它应该是正确的代码:

From: http://matplotlib.sourceforge.net/users/annotations_guide.html

4. A tuple of two coordinate specification.

The first item is for x-coordinate and

the second is for y-coordinate.

For example,annotate("Test",xy=(0.5,1),xycoords=("data","axes fraction"))

0.5 is in data coordinate,and 1 is in normalized axes coordinate.

关于发生了什么的任何想法?

编辑:

自从第一次发帖以来,我一直在寻找一种解决方法,并发现了另一个问题.当xycoords =’data’时,即使使用clip_on = False,如果annotataion落在轴之外,它仍会被剪裁.以下代码演示了这一点:

import matplotlib.pyplot as plt

plt.figure()

ax=plt.axes([.1,.8])

ax.annotate('cccc',xy=(.3,.5),xycoords='data',clip_on=False)

ax.annotate('dddd',-.1),clip_on=False)

ax.annotate('eeee',xy=(.6,xycoords='axes fraction',clip_on=False)

plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值