在散点图子图上绘制一个箭头

时间:2015-09-08 00:39:02

标签: python matplotlib

我想在散点图上画一个箭头。我认为在seeing the example here之后并不难,我需要做的就是将这一行添加到我的散点图中:

import numpy as np
import matplotlib.pyplot as plt

x, y = np.random.normal(0, 15, 5000), np.random.normal(0, 6, 5000)

fig = plt.figure(figsize=(16, 8))
# fig.add_subplot(2, 1, 1).scatter(x, y) Some subplot
fig.add_subplot(2, 1, 2).scatter(x, y)

fig.arrow(0, 0, 0.5, 0.5, head_width=0.05, head_length=0.1, fc='k', ec='k')
plt.show()

但我得AttributeError: 'Figure' object has no attribute 'arrow'。这表明我将箭链接到错误的地方。那么我应该在哪里添加它以及为什么?

1 个答案:

答案 0 :(得分:1)

arrow()Axes对象的一种方法,因此您必须拆分一行scatter()来电:

# instead of
# fig.add_subplot(2, 1, 1).scatter(x, y) Some subplot
ax = fig.add_subplot(2, 1, 2)
ax.scatter(x, y)
ax.arrow(0, 0, 40, 20, head_width=3, head_length=6, fc='k', ec='k')

另请注意,此调用使用基于轴的坐标。