0

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

import numpy as np
import matplotlib.pyplot as plt

plt.plot( range(1,10) , range(1,10) ,  color='#aaaaff')
plt.xscale('log')
plt.xticks(range(1,10) )
plt.show()

如果我注释掉xscalex 轴上的数字,则会打印出来。有人可以阐明为什么这在比例轴上不起作用log以及如何实现?

编辑:

简化代码,使其可以在没有数据文件的情况下使用。同样的事情:没有数字!

4

1 回答 1

2

默认情况下,对数轴的刻度位置以 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))

然后你得到

在此处输入图像描述

于 2012-09-12T12:07:59.653 回答