【问题标题】:Remove tick labels but not tick marks but preserve distance beween ticks删除刻度标签但不删除刻度线但保留刻度之间的距离
【发布时间】:2018-07-19 14:24:40
【问题描述】:

我想删除刻度标签,但保留刻度线并保持刻度线间距一致。我试过同时使用 ax.tick_params(labelleft='off') 和 ax.set_yticks(np.arange(0,100,10), " ") 但使用这些选项中的任何一个都会重新调整我的 y 轴,我不想要这个发生。

a1 = plt.subplot(121, adjustable='box')
a1.plot(on[:,0], on[:, 1], linewidth=0, marker=markerz[i], color=kolor[i], ms=mymark)
a1.minorticks_on()
a1.set_yticks(np.arange(0,100,10))

a2 = plt.subplot(122, adjustable='box')
a2.plot(on[:,0], on[:, 1], linewidth=0, marker=markerz[i], color=kolor[i], ms=mymark)
a2.minorticks_on()
a2.tick_params(labelleft='off')
a2.set_yticks(np.arange(0,100,10))

这就是我的情节实际上的样子。我希望某些子图共享某些轴。我试图通过删除某些刻度标签来实现这一点。我希望能够在不重新调整刻度间距的情况下删除刻度标签。

【问题讨论】:

  • 当询问一些不受欢迎的行为时,这需要对其他人进行重现。见minimal reproducible example。因此,请使用这样一个可运行的示例更新您的问题,并清楚地说明输出的外观以及它的意外之处。

标签: python matplotlib


【解决方案1】:

您可以像这样为您的图设置空刻度:

y_ind = np.arange(0,100,10)

plt.yticks(y_ind,['']*len(y_ind))

如果您不想再次缩放 y 轴,则可以设置 y 轴缩放:

plt.ylim((y_ind[0],y_ind[-1]))

这是一个例子:

import matplotlib.pyplot as plt 
import numpy as np 

d1 = np.random.rand(100)
d2 = np.random.rand(100)

plt.subplot(2,1,1)
plt.plot(d1)
plt.xticks(np.arange(0,110,10),['']*11)
plt.xlim((0,100))

plt.subplot(2,1,2)
plt.plot(d2)
plt.xticks(np.arange(0,110,10),['']*11)
plt.xlim((0,100))

【讨论】:

  • 这是特定于有 10 个主要刻度的吗?有没有办法更普遍地做到这一点?
  • 现在,我修好了。空字符串的数量当然应该等于刻度数。
  • 这仍然会重新调整我的 y 轴,实际上并没有删除刻度标签。
  • 在这种情况下,您需要为 y 轴设置限制,我在答案中添加了这一点。
  • 如果我使用 ax.set_xlim((xi, xf)) 重新定义我的轴,它仍然会以一种不受欢迎的方式重新调整我的轴,现在还会从图中删除我的所有数据。此外, ax.set_xticks(x_ind, ['']*len(xind)) 方法实际上不会删除刻度标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 2023-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-17
  • 1970-01-01
相关资源
最近更新 更多