ax.locator_params(nbins=k) 在 matplotlib 中不起作用

Yoh*_*oth 0 python matplotlib

我有这段简单的代码,我尝试在限制 x 刻度数的同时绘制简单的图形。有数百个变量iters,如果将它们绘制出来,只会创建一条粗黑线。但是,ax.locator_params不起作用,并且蜱虫的数量也没有减少。我尝试将其设置在plt对象上,但没有帮助。我还尝试在 locator_params 中指定xy轴,但也没有帮助。最后,我尝试了ax.locator_params前后移动ax.plot,但似乎没有任何帮助。我完全没有主意了。

fig, ax = plt.subplots(1, 1, figsize=(20,10))
ax.locator_params(tight=True, nbins=4)
ax.plot(iters, vals)
plt.xticks(rotation=30)
plt.show()
Run Code Online (Sandbox Code Playgroud)

Joh*_*anC 5

locator_params()withnbins=仅支持通过 设定刻度位置的数值轴MaxNLocator

要获得与文本刻度相同的效果,可以将当前刻度存储在列表 ( get_xticks) 中,然后用子集替换。请注意,对刻度(和限制)的更改应在主绘图函数之后调用。

xticks = ax.get_xticks()
ax.set_xticks(xticks[::len(xticks) // 4]) # set new tick positions
ax.tick_params(axis='x', rotation=30) # set tick rotation
ax.margins(x=0) # set tight margins
Run Code Online (Sandbox Code Playgroud)