2014-03-18 189 views
1

假设我有一个有多个坐标轴共享坐标图的坐标图,如下图所示。我如何控制x_ticks在所有子图共享的x轴上的位置?在坐标轴共享图上设置坐标轴属性

例如,假设我想仅在X的下列值上显示刻度:0, 50 and 100。据我所知,对于方法ax.set_xticks我需要指定一个轴,但它们都共享一个,我如何得到它的句柄?

f, axes = plt.subplots(3, sharex=True, sharey=True) 
for ix in xrange(3): 
    ax = axes[ix] 
    t = np.arange(0.0, 100.0, 0.1) 
    s = np.sin(0.1*np.pi*t)*np.exp(-t*0.01) 

    ax.plot(t,s) 

更新:

如何我也有我所有的次要情节是垂直居中一个ylabel

enter image description here

回答

2

使用plt.setp

plt.setp(axes[-1], xticks=[5,10,45]) 

shared x

仅供参考,详细信息,在这里:
http://matplotlib.org/examples/pylab_examples/shared_axis_demo.html

+0

谢谢!我用这个附加问题更新了OP:我怎样才能渲染一个适用于所有地块的居中'ylabel'? (它可能很长,跨越多个子图的高度) – Josh

+0

只能将它放在中间:'plt.setp(axes [1],ylabel ='hello这是一个跨多个轴的非常长的ylabel' )' – askewchan