Python 为什么不';我的matplotlib勾号标签是否可见?同样的代码适用于Jupyter笔记本电脑

Python 为什么不';我的matplotlib勾号标签是否可见?同样的代码适用于Jupyter笔记本电脑,python,windows,matplotlib,visualization,Python,Windows,Matplotlib,Visualization,我正在创建一个包含9个子图的基本图形,所有子图都具有共享的x轴和y轴。默认值仅显示最外层子地块的记号标签。我试图显示所有内部子地块的x和y记号标签,但我没有尝试在我的机器(windows)上工作,尽管使用Jupyter笔记本时使用相同的代码 我使用两个for循环遍历所有9个子图,然后遍历这些轴内的所有单独的x和y标签,写入label.set_visible(True)。这在使用Jupyter笔记本电脑时有效,但在我的机器上编写代码时无效。请参见下面我的Python和Anaconda版本: Pyt

我正在创建一个包含9个子图的基本图形,所有子图都具有共享的x轴和y轴。默认值仅显示最外层子地块的记号标签。我试图显示所有内部子地块的x和y记号标签,但我没有尝试在我的机器(windows)上工作,尽管使用Jupyter笔记本时使用相同的代码

我使用两个for循环遍历所有9个子图,然后遍历这些轴内的所有单独的x和y标签,写入label.set_visible(True)。这在使用Jupyter笔记本电脑时有效,但在我的机器上编写代码时无效。请参见下面我的Python和Anaconda版本: Python 3.7.1(默认值,2018年12月10日,22:54:23)[MSC v.1915 64位(AMD64)]::win32上的Anaconda,Inc

当前代码:

fig, ((ax1,ax2,ax3), (ax4,ax5,ax6), (ax7,ax8,ax9)) = plt.subplots(3, 3, sharex=True, sharey=True)
linear_data = np.array([1,2,3,4,5,6,7,8])
ax5.plot(linear_data, '-') # set inside tick labels to visible
for ax in plt.gcf().get_axes():
    for label in ax.get_xticklabels() + ax.get_yticklabels():
        label.set_visible(True)
plt.show()
这适用于Jupyter笔记本电脑,但在我的机器上,内部子地块的刻度标签仍然不可见

Jupyter笔记本结果:

本地计算机结果:


任何帮助都将不胜感激

使用此选项显示勾号标签:

import numpy as np
import matplotlib.pyplot as plt

# Plot figure of subplots with shared axes
fig, ((ax1,ax2,ax3), (ax4,ax5,ax6), (ax7,ax8,ax9)) = plt.subplots(3, 3, sharex=True, sharey=True)
linear_data = np.array([1,2,3,4,5,6,7,8])
ax5.plot(linear_data, '-')

# Show tick labels on all subplots
for ax in plt.gcf().get_axes():
    ax.xaxis.set_tick_params(labelbottom=True)
    ax.yaxis.set_tick_params(labelleft=True)

plt.show()


注意:我在本地计算机上使用的是Python 3.6.6。

sharex=True,sharey=True
替换为
sharex=False,sharey=False
如中所示,共享轴标签的可见性需要从matplotlib版本2.1开始通过
勾选参数设置

import numpy as np
import matplotlib.pyplot as plt

fig, axes = plt.subplots(3, 3, sharex=True, sharey=True)

linear_data = np.array([1,2,3,4,5,6,7,8])
axes[1,1].plot(linear_data, '-')

for ax in axes.flat:
    ax.tick_params(which='both', labelbottom=True, labelleft=True)

plt.show()

您在这两种情况下都使用哪个版本的matplotlib?Jupyter笔记本电脑:2.0.0,本地计算机:3.0.2(可能是问题的主要原因,我对python/matplotlib显然是新手)非常感谢!非常感谢您的编辑,我不习惯让别人改进我的答案,因为我正在编辑答案,直到现在才注意到您在做什么。