是否有避免在对数尺度上重叠的刻度格式器?
有没有办法让刻度自动不重叠呢?我运行了下面的代码,你可以看到刻度太多了,重叠在一起,看不清楚。
import matplotlib.pyplot as plt
from matplotlib.ticker import NullFormatter, EngFormatter
import numpy as np
fig = plt.figure(num='design', clear=True)
ax = fig.subplots()
v = np.logspace(np.log10(80), np.log10(7e3), 2)
ax.semilogx(v, np.ones_like(v), color=(0,0,0,0))
ax.grid(which='both', axis='x')
ax.yaxis.set_major_formatter(NullFormatter())
ax.xaxis.set_major_formatter(EngFormatter(unit='V'))
ax.xaxis.set_minor_formatter(EngFormatter(unit='V'))
ax.set_xlabel('voltage')
结果:
1 个回答
1
如果你不需要每一个小刻度的话,可以把设置小刻度单位的那行代码注释掉(就是 set_minor_formatter
那个),因为正是这行代码让小刻度显示出来。如果没有数据的话,看起来会很糟糕,但如果你确实有数据并且这些数据跨越了很大的范围(这时候就需要用对数刻度),那么看起来就会正常多了。
如果你需要更多的刻度,可以使用刻度定位器来设置你想要的刻度频率(关于这个在Stack Overflow上有很多相关的问题)。