如何使用matplotlib以对数刻度控制轴的刻度标签数量?

时间:2020-07-19 23:42:49

标签: python matplotlib axis-labels

我试图制作一个带有几个子图的图形,其中某些子图的 x 轴设置为对数标度。但是,刻度线标签越来越拥挤,我不知道如何减少刻度线标签的数量。

我尝试了e)\jeyRW#63y\$J^UQ,但它不适用于对数刻度的轴,我也尝试过

matplotlib.pyplot.locator_params(axis = 'x', nbins = 2)

但是没有运气。我知道我总是可以用手操纵的,但是有很多子图,我更喜欢自动执行此操作。

对于以对数比例的轴,是否可以限制刻度标签的数量

谢谢!

1 个答案:

答案 0 :(得分:2)

我对这种类型的图没有太多经验,但是我已经将官方网站上的信息定制为。创建了一个示例,用于使用plt.xlim()设置x轴范围。设置信息基于SO答案。

import matplotlib.pyplot as plt
import numpy as np

# fig, ax = plt.subplots()
fig = plt.figure(figsize=(8,4),dpi=144)

dt = 0.01
t = np.arange(dt, 20.0, dt)

ax1 = plt.subplot(211)
ax1.semilogx(t, np.exp(-t / 5.0))
ax1.grid()

ax2 = plt.subplot(212, sharex=ax1)
ax2.loglog(t, 20 * np.exp(-t / 10.0), basex=10)
ax1.grid()

# Changing the x-axis range
plt.xlim([1, 10**2])

plt.show()

设置参数前的图形:

enter image description here

设置参数后的图形:

enter image description here