import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [0, 1, 7, 2]
plt.scatter(x, y, color='red')
plt.title('number of iterations')
plt.xlim([1, 4])
plt.ylim([1, 8])
如果要绘制此数据,轴上的点会被部分切除。有没有办法防止这种情况(即可以将点绘制在轴的顶部)?
将
clip_on
属性设置为 False
允许您超出轴,但默认情况下轴将位于顶部。例如,脚本
x = [1, 2, 3, 4]
y = [0, 1, 7, 2]
plt.scatter(x, y, color="red", clip_on=False)
plt.title('number of iterations')
plt.xlim([1, 4])
plt.ylim([1, 8])
产生以下结果。
请注意,轴“穿过”点。如果您希望点位于轴/标签的顶部,则需要更改默认值
zorder
。例如,脚本
x = [1, 2, 3, 4]
y = [0, 1, 7, 2]
plt.scatter(x, y, color="red", clip_on=False, zorder = 10)
plt.title('number of iterations')
plt.xlim([1, 4])
plt.ylim([1, 8])
产量
注意:任何
zorder
值 3 或更大都可以在这里使用。
(对于那些想尝试不同方法的人)
我有一段时间面临同样的问题。我意识到我已经在一个地方设置了全局 rc_params,并且我将 x/y 边距设置为 0。将这些边距更改为像 0.1 这样的小值对我有帮助。
使用 Matplotlib:
import matplotlib as mpl
mpl.rcParams["axes.xmargin"] = 0.1
mpl.rcParams["axes.ymargin"] = 0.1
使用Seaborns sns.set
sns.set(
rc={
"axes.xmargin": 0.1,
"axes.ymargin": 0.1,
}
)