Python 未打印在对数刻度图上的xaxis编号

Python 未打印在对数刻度图上的xaxis编号,python,matplotlib,Python,Matplotlib,打开“对数”刻度时,x轴上的数字消失 如果我注释掉xscale,则会打印x轴上的数字。有人能解释一下为什么这在logscale轴上不起作用,以及如何实现这一点吗 编辑: 简化的代码,因此无需数据文件即可使用。同样的道理:没有数字 默认情况下,原木轴的刻度位置位于基准10中。因此,在上述情况下,唯一可能的xtick为1 如果将xticks更改为 plt.xticks([1,10]) 您在1和10处获得刻度 您还可以使用ticker,它可以让您做很多事情。例如: import numpy as n

打开“对数”刻度时,x轴上的数字消失

如果我注释掉
xscale
,则会打印x轴上的数字。有人能解释一下为什么这在
log
scale轴上不起作用,以及如何实现这一点吗

编辑:


简化的代码,因此无需数据文件即可使用。同样的道理:没有数字

默认情况下,原木轴的刻度位置位于基准10中。因此,在上述情况下,唯一可能的
xtick
为1

如果将
xticks
更改为

plt.xticks([1,10])
您在
1
10
处获得刻度

您还可以使用
ticker
,它可以让您做很多事情。例如:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import LogLocator

fig = plt.figure(1, [5,4])
ax = fig.add_subplot(111)

ax.plot( range(1,100) , range(1,100) ,  color='#aaaaff')
ax.set_xscale('log')
# This is default, so play with it
ax.xaxis.set_major_locator(LogLocator(base = 10.0))
plt.show()

如果您使用:

ax.xaxis.set_major_locator(LogLocator(base = 100.0))
然后你得到


好的,太好了!现在,如何将刻度(和数字)设置为2,4,8,16?我这样问是因为
ax.xaxis
没有
xticks
!使用
ax.setxscale('log',basex=2)
ax.xaxis.set_major_locator(LogLocator(base = 100.0))