【问题标题】:Put shared axis labels to upper plot将共享轴标签放在上图
【发布时间】:2022-01-25 01:19:01
【问题描述】:
from matplotlib import pyplot as plt
fig, (ax0, ax1) = plt.subplots(nrows=2, sharex=True)
fig.show()
返回这个数字:
但我想要第一个图下方的 x 轴标签,而不是第二个图,如下所示。我怎样才能做到这一点?
【问题讨论】:
标签:
python
matplotlib
multiple-axes
【解决方案1】:
official reference中有一个例子,所以我参考回答:在tick参数中,将底部标签设置为false。
import matplotlib.pyplot as plt
ax0 = plt.subplot(211)
ax1 = plt.subplot(212, sharex=ax0, sharey=ax0)
#plt.plot([],[])
plt.tick_params('x', labelbottom=False)
#print(ax1.get_xticks())
plt.show()
【解决方案2】:
@r-beginners 的回答让我找到了一个解决方案,该解决方案在使用 plt.subplots 快捷方式而不是分别实例化每个轴时也有效。
from matplotlib import pyplot as plt
fig, (ax0, ax1) = plt.subplots(nrows=2, sharex=True)
plt.tick_params('x', labelbottom=False, labeltop=True)
fig.show()
他的基本部分是plt.tick_params,它采用关键字参数labeltop 或labelbottom(以及labelleft 或labelright 用于多个列上的共享轴)来单独选择/取消选择每个轴。