在matplotlib轴限制内添加x = y(45度)线

时间:2014-08-04 12:23:55

标签: python matplotlib

我有一个不同的x和y限制的情节:

fig, ax = subplots(ncols=1)
ax.set_xlim([0, 10])
ax.set_ylim([5, 10])

我想在此图中添加x=y行,但要将该行保持在轴限制范围内。

我的第一个天真的尝试只是

ax.plot(ax.get_xlim(), ax.get_xlim())

First, naive attempt

改进的尝试有效,但代码方面非常难看:

ax.plot([max(ax.get_xlim()[0], ax.get_ylim()[0]), 
         min(ax.get_xlim()[1], ax.get_ylim()[1])],
        [max(ax.get_xlim()[0], ax.get_ylim()[0]), 
         min(ax.get_xlim()[1], ax.get_ylim()[1])])

enter image description here

有更好的方法吗? 我在Matplotlib版本1.2.1上的Spyder 2.2.5中使用了IPython版本1.3.1,并且mpl.get_backend()返回:

'module://IPython.kernel.zmq.pylab.backend_inline'

2 个答案:

答案 0 :(得分:9)

x = np.linspace(*ax.get_xlim())
ax.plot(x, x)

答案 1 :(得分:1)

如果0 <= X <= 10 <= Y <= 1对我有用:

import matplotlib.pyplot as plt

plt.scatter(X, Y)
plt.plot([0, 1], [0, 1], color = 'black', linewidth = 2)
plt.xlim(-0.05, 1.05)
plt.ylim(-0.05, 1.05)

您当然可以调整限制。