有没有办法在线图上定义刻度线和脊柱之间的距离?我设法创建了以下内容(yticks与脊柱和网格线分开)
使用以下代码:
params_1 = {
'axes.spines.top': False,
'axes.spines.left': False,
'axes.spines.right': False,
'ytick.major.size': 10,
}
plt.rcParams.update(params_1)
fig = plt.figure(figsize=(13,6.5))
ax = fig.add_subplot(111, facecolor='w')
ax.set_ylim([5,15])
ax.set_xticks([5,10,15,20,25])
ax.yaxis.grid()
ax_xgrid = ax.xaxis.grid(linestyle=':', linewidth=1.5)
[i.set_marker('o') for i in ax.yaxis.get_ticklines()]
[i.set_markeredgecolor('w') for i in ax.yaxis.get_ticklines()]
[i.set_markeredgewidth(4) for i in ax.yaxis.get_ticklines()]
这看起来正是我想要的但是如果保存透明图,那么我会看到yticks周围的白色圆圈。任何想法如何解决这个问题?
谢谢,
答案 0 :(得分:2)
如果我正确理解您的要求,可以使用the tick_params()
helper function轻松完成。
fig, ax = plt.subplots()
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.tick_params(axis='y', color='none', pad=50)
ax.grid()
plt.show()
编辑我不明白你想做什么。你想要增加左轴和图的主要部分之间的距离。为此,请使用the Spine.set_position() function。以下应该有效:
fig, ax = plt.subplots()
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['left'].set_position(('outward', 20))
[i.set_marker('o') for i in ax.yaxis.get_ticklines()]
ax.grid()
plt.show()