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

Matplotlib子地块——完全去掉勾号标签

柴兴贤
2023-03-14

在Matplotlib中创建子地块数组时,有没有一种方法可以完全去掉勾号标签?我目前需要根据绘图对应的较大数据集的行和列指定每个绘图。我尝试使用ax.setxticks([])和类似的y轴命令,但没有成功。

我认识到,这可能是一个不寻常的要求,希望作出一个绘图没有轴数据,但这是我需要的。我需要它自动应用于数组中的所有子地块。

共有3个答案

卢志行
2023-03-14

子情节的命令是相同的

fig = plt.figure()

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

ax1.plot([1,2])

ax1.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)
)

plt.draw()
墨财
2023-03-14

甚至比@DrV的回答更简洁,重新混合@mwaskom的评论,一个完整而完整的单行线,去掉所有子情节中的所有轴:

# do some plotting...
plt.subplot(121),plt.imshow(image1)
plt.subplot(122),plt.imshow(image2)
# ....

# one liner to remove *all axes in all subplots*
plt.setp(plt.gcf().get_axes(), xticks=[], yticks=[]);

注意:这必须在调用plt.show()之前调用

贺善
2023-03-14

你有正确的方法。可能您没有将setxticks应用于正确的轴。

例如:

import matplotlib.pyplot as plt
import numpy as np

ncols = 5
nrows = 3

# create the plots
fig = plt.figure()
axes = [ fig.add_subplot(nrows, ncols, r * ncols + c) for r in range(0, nrows) for c in range(0, ncols) ]

# add some data
for ax in axes:
    ax.plot(np.random.random(10), np.random.random(10), '.')

# remove the x and y ticks
for ax in axes:
    ax.set_xticks([])
    ax.set_yticks([])

这使得:

请注意,每个轴实例都存储在一个列表()中,然后可以轻松地对其进行操作。像往常一样,有几种方法可以做到这一点,这只是一个例子。

 类似资料:
  • 问题内容: 我希望降低不同子地块上的刻度标签密度 结果呢![输入图像描述] 这里 我想减少上面两个子地块的记号标签。怎么做 ? 谢谢。 奖励:1)如何去除条形图上y=0的虚线? 2) 如何去除子图0和1之间的x-trick标签?3) 如何设置 后面的情节要透明吗?(请参见右下角断开的y轴线。) 消失在情节背后) 问题答案: 您可以像设置xticks一样,将记号设置到您想要的位置。 这将为ax0子批

  • 我试图创建一个由2x2网格组成的图形,其中每个象限有两个垂直堆叠的子图(即2x1网格)。不过,我似乎不知道如何实现这一点。 我得到的最接近的是使用gridspec和一些丑陋的代码(见下文),但是因为改变了所有子图的行间距,所以我仍然不在我想去的地方。 理想情况下,我想要的是,以下图为例,减少每个象限内子地块之间的间距,同时增加顶部和底部象限之间的垂直间距(即1-3和2-4之间)。 有没有办法做到这

  • 我有一个数据框架,df,就像: 我想绘制两个垂直条形图,每个大陆一个,并排,共享相同的y轴。我已经完成了90%的工作,除了将条的高度添加到子图中。到目前为止,我的代码: 我在这里和那里看到过带有标签的示例,但这些往往只适用于一个条形图,而不是几个子图。

  • 我想对绘图中的几个选定记号标签进行一些修改。 例如,如果我这样做: 刻度标签的字体大小和方向会改变。 但是,如果尝试: 刻度标签未被修改。另外,如果我这样做: 没有打印任何内容。 还有一些奇怪的地方。当我尝试这样做时: 仅打印空字符串,但绘图包含标记为“0.0”、“0.5”、“1.0”、“1.5”和“2.0”的记号。

  • 我想问你一个关于matplotlib中的子批大小的问题。我需要创建一个固定大小的图形,由一行中的3个子地块组成。出于“编辑原因”,我需要确定图形的大小,但我也想确定子地块的大小和位置,而不影响图形大小(第三个子地块必须比前两个子地块窄)。 我尝试使用GridSpec,但没有成功。我还尝试使用“figsize”来固定图形大小,并为子地块使用add\u轴,但根据子地块的相对大小,图形和子地块的总体大小

  • 水平颜色栏上的标签靠得太近,我不想进一步减小文本大小: 我想保留所有的记号,但删除其他标签。 我找到的大多数示例都将用户指定的字符串列表传递给cbar.set_ticklabels()。我在寻找一个通用的解决方案。 我玩了很多不同的游戏 和 但是我还没有找到神奇的组合。 我知道一定有一个干净的方法来使用定位器对象来实现这一点。