在 Matplotlib 中,哪个轴属性指定刻度之间的间距? [复制]

Posted

技术标签:

【中文标题】在 Matplotlib 中,哪个轴属性指定刻度之间的间距? [复制]【英文标题】:In Matplotlib, what axis attribute specifies the spacing between ticks? [duplicate] 【发布时间】:2018-09-27 12:02:26 【问题描述】:

在生成 Matplotlib 线或散点图时,哪个轴属性指定刻度之间的间距?我不想按照this related question的提示explicitly specify where each tick should be

ax.ticks(np.arange(-100, 100, 5))

控制刻度间距的matplotlib轴属性是什么?它的行为应该如下所示。

ax.set_x_tick_spacing(5)

这将使用相同的默认 xlim 和原点(通常为 0)作为默认设置。

【问题讨论】:

这个问题不是related question的重复,因为这是专门询问matplotlib属性是什么来控制刻度间距的。这个问题更广泛,也更不集中。此外,相关问题的公认答案在这种情况下根本不适用。 我的意思是,您链接到的答案与您的答案几乎完全相同,并且也链接到了 matplotlib 食谱。该帖子已经存在了一段时间,并且包含许多操纵刻度的方法,即使该特定答案不是被接受的答案。因此,我确实认为这应该作为重复关闭 @DavidG 这个问题是问轴属性是什么,而不仅仅是如何“改变滴答频率”。在 *** 和 Google 上搜索如何执行此操作时,我没有找到相关问题的晦涩答案。即使在编写这个任务时,*** 也不会提示另一个问题是相关的。 @DavidG 这个问题比引用的问题要清楚得多。您应该查看*** guidance on "Vote Down",因为您应该“在遇到极其草率、不费吹灰之力的帖子或明显不正确且可能危险地不正确的答案时使用您的反对票。”这两者都不是。即使您确实认为这是重复的,该指南甚至会说“不要投反对票:如果问题是重复的或离题,请将其标记以引起版主注意。” 我不明白为什么不能重复,答案与重复的答案完全相同。我因此标记为这样。 【参考方案1】:

more recent answer to the related question 说明了如何使用 matplotlib.ticker.MultipleLocator 对象。轴刻度是这种类型的 matplotlib 对象。这是它的使用示例。

ax.xaxis.set_major_locator(matplotlib.ticker.MultipleLocator(5))

将在 x 轴上间隔 5 个单位放置刻度,并且

ax.xaxis.set_minor_locator(matplotlib.ticker.MultipleLocator(1))

将在 x 轴上相隔 1 个单位放置次要刻度。

这是来自matplotlib Plotting Cookbook的示例

import numpy as np
import matplotlib.pyplot as plt
import matplotlib

X = np.linspace(-15, 15, 1024)
Y = np.sinc(X)

ax = plt.axes()
ax.xaxis.set_major_locator(matplotlib.ticker.MultipleLocator(5))
ax.xaxis.set_minor_locator(matplotlib.ticker.MultipleLocator(1))

plt.plot(X, Y, c = 'k')
plt.show()

【讨论】:

以上是关于在 Matplotlib 中,哪个轴属性指定刻度之间的间距? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 子图——完全摆脱刻度标签

科学计算可视化

如何在 Matplotlib 中将轴刻度值乘以 10 的因数

在保留网格的同时删除 x 轴刻度(matplotlib)[重复]

matplotlib 刻度标签锚 - 右对齐刻度标签(在右侧轴上)并将刻度标签的左(西)侧“剪辑”到轴

matplotlib 中所有绘图的线性刻度轴从公里到米