当前位置: 首页 > 知识库问答 >
问题:

如何从matplotlib中的轴删除XTIC?[副本]

狄英哲
2023-03-14

我正在matplotlib中使用子图。因为我的所有子图都有相同的x轴,所以我只想在底部图上标记x轴。如何仅从一个轴移除XTIC?

共有2个答案

聂季同
2023-03-14

丹,如果你用面向对象的方式设置你的情节

import matplotlib.pyplot as plt
fig, ax_arr = subplots(3, 1, sharex=True)

然后,应该可以很容易地使用以下内容隐藏x轴标签

plt.setp([a.get_xticklabels() for a in f.axes[:-1]], visible=False)
# or
plt.setp([a.get_xticklabels() for a in ax_arr[:-1]], visible=False)

但是看看这个链接,下面的一些例子会很有用。

编辑:

如果您不能使用plt.subplot(),我仍然假设您可以使用

import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)

ax1.plot(x1, y1)
ax2.plot(x2, y2)

plt.setp(ax1.get_xticklabels(), visible=False)

如果您有超过2个子批次,例如

ax1 = fig.add_subplot(N11)
ax2 = fig.add_subplot(N12)
...
axN = fig.add_subplot(N1N)

plt.setp([a.get_xticklabels() for a in (ax1, ..., axN-1)], visible=False)
汪胡非
2023-03-14

正如这里指出的,下面的工作!

plt.tick_params(\
    axis='x',          # changes apply to the x-axis
    which='both',      # both major and minor ticks are affected
    bottom='off',      # ticks along the bottom edge are off
    top='off',         # ticks along the top edge are off
    labelbottom='off') # labels along the bottom edge are off
 类似资料:
  • 问题内容: 当我尝试对具有足够大数字的范围进行绘图时,我得到了所有刻度线都相对移动的轴。例如: 我在横坐标轴上得到了这些刻度: 问题是如何删除并获取: 问题答案: 这将抓取,获取x轴axis对象,然后获取主对象,并将设置为false(doc)。 在matplotlib的较新版本(1.4+)中,可以通过 更改默认行为。

  • 我正在尝试使用Matplotlib绘制一些数据。我的代码工作正常,但我的图形标题和y轴刻度的顶部值之间存在冲突。所以我的问题是,有人知道如何只从y轴上删除顶部值,同时保持绘图的其他所有内容不变吗? 我的代码 谢啦

  • 我在Java有一个集合数组列表。 例如,当我这样做时: 测试是集合。 为什么我得到的结果是:[jamesbond] 我只想要jamesbond,但为什么他们也给我[]?

  • 问题内容: 我该如何删除matplotlib轴的一条线(或多条线),使其实际上收集到垃圾并释放回内存?以下代码似乎删除了该行,但是从不释放内存(即使显式调用) 问题答案: 我正在展示 和结合使用的技巧。 我检查了您的大型数据集,并在系统监视器上也确认了内存的释放。 当然,更简单的方法(当不进行故障排除时)是从列表中弹出它并在不创建硬引用的情况下调用该行对象:

  • 问题内容: 我在这里阅读了其他问题 作为删除当前图上轴偏移的一种方法,但是默认情况下有什么方法吗?我在matplotlibrc文件中看不到任何有帮助的东西。 问题答案: 不,没有办法。它在353行的源文件中定义: 作为默认参数值。因此默认值为。 当然,您可以修改源。

  • 我试图用Python(而不是C#、PHP或其他)将%20符号从url转换为字符串后删除。然而,无论我尝试什么格式,符号都保持不变。 以下是我想要得到的: