我用大量的点在对数刻度上绘制几行。我使用不同的线条样式/标记将它们绘制成黑色。我使用“markevery”属性来减少标记量。 X值以均匀的间隔变化。
我遇到的问题是标记分布不均匀 - 较少接近0,并且更靠近每条线的右端。 有没有办法绕过这个问题而不挑剔x值,以便它们在对数范围内“均匀”分布?
答案 0 :(得分:4)
您可以给出要绘制的点的索引。在logscale
中,这些点应该是非均匀分布的。您可以尝试logspace
来实现它。
import pylab as plt
import numpy as np
x=np.arange(1,1e5)
# Normal plot
#plt.plot(x,x,'o-')
# Log plot
idx=np.logspace(0,np.log10(len(x)),10).astype('int')-1
plt.plot(x[idx],x[idx],'o-')
plt.xscale('log')
plt.yscale('log')
plt.show()
生成: