如何在python中隐藏刻度标签但保持刻度不变?

Posted

技术标签:

【中文标题】如何在python中隐藏刻度标签但保持刻度不变?【英文标题】:How to hide ticks label in python but keep the ticks in place? 【发布时间】:2014-01-23 01:42:44 【问题描述】:

我想在我创建的图上隐藏我的刻度标签,但保留这个刻度本身(轴上的小标记)。例如,当我尝试使用我找到的 here 时,会删除整个刻度,而不仅仅是标签。那我怎样才能只删除标签呢?

【问题讨论】:

【参考方案1】:

这是一个稍微简单的答案,使用ax.tick_params

import matplotlib.pylab as plt

fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])

ax.tick_params(labelbottom=False)    

plt.show()

这是 Matplotlib 3 中的结果输出

正如@chris 所评论的,在上面的示例中,可以类似地使用labeltoplabelleftlabelright 来隐藏其他任何轴上的标签,而不是labelbottom

【讨论】:

注意那些到达这里以了解如何在其他轴上隐藏标签的人,ax.tick_params 接受以下关键字参数:labelbottomlabeltoplabelleftlabelright跨度> 【参考方案2】:

设置刻度标签不是一个空数组,而是一个空字符串列表。在下面的示例中,我将 xtick 标签替换为空字符串,而 y 轴保持不变。如果您愿意,您可以从这里有选择地保留某些标签。

import pylab as plt

fig, ax = plt.subplots()
ax.plot([1,2,3],[4,5,6])

labels = [item.get_text() for item in ax.get_xticklabels()]

empty_string_labels = ['']*len(labels)
ax.set_xticklabels(empty_string_labels)

plt.show()

此代码改编自a previous answer。

【讨论】:

您可以执行ax.set_yticklabels([]),而无需初始化空字符串列表。【参考方案3】:

我没有找到适合我的 divenex 答案。这个答案在不触发任何自动标记的情况下创建刻度,因此不需要使用“labelbottom = False”:

如果底部和左侧刻度已经存在:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])

ax.tick_params(right= True,top= True)

如果不存在刻度:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])

ax.tick_params(right= True,top= True,left= True, bottom= True)

【讨论】:

这个答案不会隐藏标签。它创建刻度,保持标签不变。【参考方案4】:
import matplotlib.pylab as plt

fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])

ax.set_xticklabels([])

plt.show()

【讨论】:

以上是关于如何在python中隐藏刻度标签但保持刻度不变?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 matplotlib 中移动刻度标签

Python,x轴标题与matplotlib中的刻度标签重叠

在 Flot 中,是不是可以在不消除相应标签的情况下消除或隐藏网格刻度?

如何用刻度包裹 D3 标签

Plotly/Dash:是不是可以隐藏辅助 y 轴的刻度标签?

在matplotlib颜色栏中隐藏每个第n个刻度标签的最干净方法?