Python 如何在gridspec中使轴刻度标签在绘图的另一侧可见?

Python 如何在gridspec中使轴刻度标签在绘图的另一侧可见?,python,matplotlib,Python,Matplotlib,绘制我最喜欢的示例数据帧,如下所示: x val1 val2 val3 0 0.0 10.0 NaN NaN 1 0.5 10.5 NaN NaN 2 1.0 11.0 NaN NaN 3 1.5 11.5 NaN 11.60 4 2.0 12.0 NaN 12.08 5 2.5 12.5 12.2 12.56 6 3.0 13.0 19.8 13.04 7 3

绘制我最喜欢的示例数据帧,如下所示:

      x   val1   val2   val3
0    0.0  10.0   NaN    NaN
1    0.5  10.5   NaN    NaN
2    1.0  11.0   NaN    NaN
3    1.5  11.5   NaN  11.60
4    2.0  12.0   NaN  12.08
5    2.5  12.5  12.2  12.56
6    3.0  13.0  19.8  13.04
7    3.5  13.5  13.3  13.52
8    4.0  14.0  19.8  14.00
9    4.5  14.5  14.4  14.48
10   5.0   NaN  19.8  14.96
11   5.5  15.5  15.5  15.44
12   6.0  16.0  19.8  15.92
13   6.5  16.5  16.6  16.40
14   7.0  17.0  19.8  18.00
15   7.5  17.5  17.7    NaN
16   8.0  18.0  19.8    NaN
17   8.5  18.5  18.8    NaN
18   9.0  19.0  19.8    NaN
19   9.5  19.5  19.9    NaN
20  10.0  20.0  19.8    NaN
我有两个子包,出于其他一些原因,我最好使用gridspec。绘图代码如下所示(它相当全面,因此我希望避免在代码中进行重大更改,否则这些代码工作得很好,只是没有完成一个不重要的细节):

但是,是否可以在右侧显示第二个子批次的y记号标签?当前代码生成以下内容:

我想知道是否有一种简单的方法可以做到这一点:

试试类似的方法

axes2.yaxis.tick_right()
随便看看。

试试类似的方法

axes2.yaxis.tick_right()

随便看看。

不,好吧,我发现这正是我想要的。 我希望记号在两边,只是标签在右边。上面的解决方案删除了子地块左侧的记号,这看起来不太好。然而,这似乎得到了正确的解决方案:) 总而言之: 要获得两侧的刻度和右侧的标签,请执行以下操作:

axes2.yaxis.tick_right(‌​) 
axes2.yaxis.set_ticks_p‌​osition('both')

如果x轴需要相同的,则为
axes2.xaxis.tick_top(‌​)

不,好吧,我发现这正是我想要的。 我希望标记位于两侧,只是标签位于右侧。上面的解决方案将我的标记从子批次的左侧移除,这看起来不太好。但是,这似乎得到了正确的解决方案:) 总而言之: 要获得两侧的刻度和右侧的标签,请执行以下操作:

axes2.yaxis.tick_right(‌​) 
axes2.yaxis.set_ticks_p‌​osition('both')

如果x轴需要相同的,则为
axes2.xaxis.tick_top(‌​)

耶,这就是我一直在寻找的!太棒了,谢谢!耶,这就是我一直在寻找的!太棒了,谢谢!