修复matplotlib图

ely*_*ase 5 python matplotlib

在matplotlib中,我喜欢通过从原点移动刺来自定义我的绘图,例如:

plot(range(10), marker='o', ms=20)

#customize axes
axes = gca()
axes.spines['right'].set_color('none')
axes.spines['top'].set_color('none')
axes.xaxis.set_ticks_position('bottom')
axes.spines['bottom'].set_position(('axes', -0.05))
axes.yaxis.set_ticks_position('left')
axes.spines['left'].set_position(('axes', -0.05))
axes.tick_params(axis='x', direction='out')
axes.tick_params(axis='y', direction='out')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

问题:

我该怎么做才能避免我的标记在边界被切割?

Dav*_*ker 6

您必须通过添加clip_on=False到plot命令来关闭剪辑:

import numpy as np
import matplotlib.pyplot as plt

plt.plot(range(10), marker='o', ms=20, clip_on=False)

axes = plt.gca()
axes.spines['right'].set_color('none')
axes.spines['top'].set_color('none')
axes.xaxis.set_ticks_position('bottom')
axes.spines['bottom'].set_position(('axes', -0.05))
axes.yaxis.set_ticks_position('left')
axes.spines['left'].set_position(('axes', -0.05))
axes.tick_params(axis='x', direction='out')
axes.tick_params(axis='y', direction='out')

plt.show()
Run Code Online (Sandbox Code Playgroud)

产生: 结果图