matplotlib从脊柱分开蜱虫

时间:2017-09-29 11:09:05

标签: python matplotlib python-3.5

有没有办法在线图上定义刻度线和脊柱之间的距离?我设法创建了以下内容(yticks与脊柱和网格线分开)

enter image description here

使用以下代码:

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周围的白色圆圈。任何想法如何解决这个问题?

谢谢,

1 个答案:

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

enter image description here

编辑我不明白你想做什么。你想要增加左轴和图的主要部分之间的距离。为此,请使用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()

enter image description here