gpt4 book ai didi

python - 如何在保持刻度的同时显示刻度标签的特定间隔

转载 作者:行者123 更新时间:2023-11-28 17:07:16 24 4
gpt4 key购买 nike

我目前正在尝试绘制一个有很多刻度的图形。它有从 0 到 50 的每个值的刻度,导致合并的打包刻度标签使绘图非常困惑。我用

制作了刻度线
fig, ax = plt.subplots()
ax.set_xticks(np.arange(0,50))
ax.set_yticks(np.arange(0,50))

并使用

隐藏刻度标签
ax.set_xticklabels([])
ax.set_yticklabels([])

但是,问题是这会隐藏所有刻度标签,而我希望保留一些标签,以便我可以使用标签轻松跟踪。

我试过

ax.set_xticklabels(np.arange(0,50,5))

但这只会导致用不适当的标签标记前 10 个刻度(范围为(0,50),间隔为 5)

我希望找到一种方法来显示间隔为 5(或任何特定间隔)的刻度“标签”,同时保持所有实际刻度(以便我可以将它们用于网格)。

最佳答案

Matplotlib 让您可以使用定位器和格式化程序完全控制刻度和标签。这通常比通过 set_xticksset_xticklabels 将刻度和标签设置为一些固定值更可取。
仅标记部分刻度的两个选项:

仅使用主要报价

您可以使用 FuncFormatter 将标签设置为刻度值或空字符串 "",具体取决于某些条件。

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

fig, ax = plt.subplots()
ax.plot([0,49],[1,8])

ax.xaxis.set_major_locator(mticker.MultipleLocator())

def func(x, pos):
if not x%5:
return "{:g}".format(x)
else:
return ""
ax.xaxis.set_major_formatter(mticker.FuncFormatter(func))

plt.show()

enter image description here

使用小刻度

人们可能会使用主要的刻度来标记,而次要的刻度保持未标记。可选地,可以使次要刻度与主要刻度一样大。

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

fig, ax = plt.subplots()
ax.plot([0,49],[1,8])

ax.xaxis.set_major_locator(mticker.MultipleLocator(5))
ax.xaxis.set_minor_locator(mticker.MultipleLocator(1))
ax.xaxis.set_minor_formatter(mticker.NullFormatter())

# optionally make the minorticks as large as the major ticks
#ax.tick_params(axis="x", which="both", length=4)

plt.show()

enter image description here

关于python - 如何在保持刻度的同时显示刻度标签的特定间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50244520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com