6

在 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')

在此处输入图像描述

问题

我可以做些什么来避免我的标记在边界处被切割?

4

2 回答 2

6

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

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()

产生: 结果图片

于 2013-09-12T14:05:17.603 回答
4
from pylab import *
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')
axes.spines['bottom'].set_smart_bounds(True)
axes.spines['left'].set_smart_bounds(True)
axes.set_xlim(-0.5, 9.5)
axes.set_ylim(-0.5, 9.5)
axes.set_xticks(range(10))
axes.set_yticks(range(10))

在此处输入图像描述

于 2013-09-12T13:38:41.353 回答