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

Lon*_*Rob 4 python matplotlib

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

fig, ax = subplots(ncols=1)
ax.set_xlim([0, 10])
ax.set_ylim([5, 10])
Run Code Online (Sandbox Code Playgroud)

我想x=y在此图中添加一条线,但保持线在轴限制内.

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

ax.plot(ax.get_xlim(), ax.get_xlim())
Run Code Online (Sandbox Code Playgroud)

首先,天真的尝试

一个改进的尝试工作,但代码方面非常难看:

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])])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

'module://IPython.kernel.zmq.pylab.backend_inline'
Run Code Online (Sandbox Code Playgroud)

Max*_*Noe 10

x = np.linspace(*ax.get_xlim())
ax.plot(x, x)
Run Code Online (Sandbox Code Playgroud)

  • 我不认为matplotlib甚至不能绘制轴外的东西,你应该填写错误报告. (2认同)

fro*_*ael 6

如果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)
Run Code Online (Sandbox Code Playgroud)

当然,您可以调整限制。