减少地块刻度

我的图表上有太多刻度线,它们彼此碰到。


如何减少刻度线的数量?


例如,我有刻度:


1E-6, 1E-5, 1E-4, ... 1E6, 1E7

我只想要:


1E-5, 1E-3, ... 1E5, 1E7

我曾尝试过使用LogLocator,但还无法弄清楚。


江户川乱折腾
浏览 429回答 3
3回答

HUWWW

另外,如果您想简单地设置刻度线的数量,同时允许matplotlib对其进行定位(目前仅使用MaxNLocator),则有pyplot.locator_params,pyplot.locator_params(nbins=4)您可以按照以下方法在此方法中指定特定的轴,默认为两者:# To specify the number of ticks on both or any single axespyplot.locator_params(axis='y', nbins=6)pyplot.locator_params(axis='x', nbins=10)

叮当猫咪

如果仍然有人在搜索结果中获得此页面:fig, ax = plt.subplots()plt.plot(...)every_nth = 4for n, label in enumerate(ax.xaxis.get_ticklabels()):    if n % every_nth != 0:        label.set_visible(False)

有只小跳蛙

万一有人仍然需要它,并且因为这里没有任何东西真正适合我,我想出了一种非常简单的方法,可以将生成的图的外观保持“原样”,同时将刻度数固定为N:import numpy as npimport matplotlib.pyplot as pltf, ax = plt.subplots()ax.plot(range(100))ymin, ymax = ax.get_ylim()ax.set_yticks(np.round(np.linspace(ymin, ymax, N), 2))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python